Sorting and Selection Issue – जब हम किसी GridView Control के लिए Sorting व Selection दोनों को एक साथ Enable कर देते हैं, तब हमें एक और Issue Face करना पडता है। इस Issues को बेहतर तरीके से समझने के लिए हम हमारे पिछले Example में ही GridView Control के लिए Selection व Sorting दोनों को निम्नानुसार Enable कर देते हैं:
अब इस Page को Run करके पहले Record को Select करने पर हमें हमारा Output निम्नानुसार दिखाई देता है:
अब यदि हम “FirstName” Header पर Click करें, तो सभी Rows Sort तो हो जाते हैं, लेकिन अभी भी निम्न चित्रानुसार पहला Row ही Selected रहता है:
जबकि होना वास्तव में ये चाहिए था कि Third-Last यानी वह Row Selected रहता, जिसका FirstName “Nancy” है और यदि वह Issue है, जो तब पैदा होता है, जब हम एक ही GridView Control के लिए Selection व Sorting दोनों को Enable कर देते हैं।
इस Issues को Solve करने के लिए Microsoft ने ASP.NET 4 Version के बाद GridView Control के लिए EnablePersistedSelection Property Add किया है, जिसे True Set करके हम अपने Selection को Postbacks के दौरान Persisted रख सकते हैं।
परिणामस्वरूप जब एक बार हम इस Property को Enable कर देते हैं, उसके बाद जब हम अपने Webpage को फिर से Load करते हैं और पहले Record को Select करने के बाद FirstName Header को Click करके Records की Sorting करते हैं, तो इस बार हमें प्राप्त होने वाला Output निम्नानुसार होता है:
जहां हम देख सकते हैं कि इस बार हमारा Selection भी Sorting के साथ ही Shift हो गया है।
Advance Sorting
जैसाकि पिछले Section में हमने देखा कि GridView Control के साथ Sorting Function को Enable करना काफी आसान काम होता हैं। लेकिन कई बार हमें काफी Advance Level का Sorting Function Define करने की जरूरत पडती है, जहां User Multiple-Columns के आधार पर अलग-अलग तरह से Sorting Perform करता है।
इस प्रकार की स्थिति को Handle करने के लिए हमें GridView.Sorting Event को Handle करना पडता है। ये Event User द्वारा किसी Column Handler को Click करने के बाद व Records की Sorting Perform होने से Just पहले Trigger होता है।
उदाहरण के लिए हम चाहते हैं कि यदि User पहले FirstName Column Header को Click करे और फिर City Column Header को, तो उस स्थिति में FirstName+City के Group Column पर Sorting Apply हो, तो इस जरूरत को पूरा करने के लिए हम Sorting Event को निम्नानुसार Handle कर सकते हैं:
[code]protected void gridEmployees_Sorting(object sender, GridViewSortEventArgs e) { if (e.SortExpression == "FirstName" && gridEmployees.SortExpression == "City") { //Based on current sort & requested sort, a compound sort makes sense. e.SortExpression = "FirstName, City"; } }[/code]
ये Article इस वेबसाईट पर Selling हेतु उपलब्ध EBook Advance ASP.NET WebForms with C# in Hindi से लिया गया है। इसलिए यदि ये Article आपके लिए उपयोगी रहा, तो निश्चित रूप से ये पुस्तक भी आपके लिए काफी उपयोगी साबित होगी।
Advance ASP.NET WebForms in Hindi | Page:707 | Format: PDF