javascript - MVC 5 sorting and filtering data -
मेरे विचार पर मुझे Ajax.BeginForm का उपयोग करते हुए प्रदर्शित आंकड़ों को फ़िल्टर करने की संभावना है जो कि आंशिक दृश्य देता है और डेटा के साथ केवल एक तालिका को रीफ़्रेश करता है मुझे Ajax.ActionLink का उपयोग कर एक कॉलम हैडर पर क्लिक करते समय कॉलम के अनुसार सॉर्ट करने की संभावना भी है I समस्या यह है कि जब मैं Ajax.ActionLink का उपयोग करता हूं, तो मुझे पूरे पृष्ठ को रीफ्रेश करना पड़ता है और मैं फिल्टर में चुने गए टैब को ढीला कर देता हूं (वे कस्टम मल्टीसेलेक्ट कॉम्बो नियंत्रण होते हैं) इसलिए पूरे डेटा को सॉर्ट और प्रदर्शित किया जाता है।
मैंने फिल्टर वापस सेट करने के लिए जेसन डेटा भेजने के लिए ViewBag का उपयोग करने की कोशिश की लेकिन मैं विफल रहा। मैं न केवल मेज पर ताज़ा करेगी मैं एमवीसी के लिए नया हूँ यह कैसे अच्छा तरीके से करने के लिए? मदद के लिए धन्यवाद!
देखें:
@using (Ajax.BeginForm (नया AjaxOptions () {HttpMethod = "get", InsertionMode = InsertionMode.Replace, UpdateTargetId = "एक्सपोजर रिकॉर्ड्स"})) {& lt; div class = "form-group" & gt; & Lt; चुनें आईडी = "ब्रांड-चयन" नाम = "ब्रांड" एकाधिक = "एकाधिक" & gt; @ {Var ब्रांड = मॉडल। ब्रांड्स; विदेशी ब्रांड (ब्रांड में विविध वस्तुएं) {& lt; विकल्प मान = "@ वस्तु" & gt; @ आइटम & lt; / option & gt; }} & Lt; / select & gt; & Lt; / div & gt; (... 3 अन्य फिल्टर के समान ...) & lt; तालिका वर्ग = "तालिका" & gt; & LT; टीआर & gt; & LT; वें & gt; @ एचटीएमएल.एक्शनलिंक ("मार्क", "इंडेक्स", नया {सॉर्टओडर = व्यूबैग। ब्रेंडसोर्टपरम}) & lt; / th & gt; & LT; वें & gt; @ एचटीएमएल.एक्शनलिंक ("डिस्प्लीना", "इंडेक्स", नया {सॉर्टआउडर = व्यूबाग। डिस्निशिएशन एसएपीआरएम}) & lt; / th & gt; & LT; वें & gt; @ एचटीएमएल.एक्शनलिंक ("एमआईआईसीक", "इंडेक्स", नया {सॉर्टओडर = व्यूबाग.मोन्थसोर्टपरम}) & lt; / th & gt; & LT; वें & gt; @ एचटीएमएल.एक्शनलिंक ("लाइसोजबा एक्सब्ज़ीकजी", "इंडेक्स", नया {सॉर्टओडर = व्यूबाग.कॉन्टाटीसोर्टपेर्म}) & lt; / th & gt; & LT; वें & gt; @ एचटीएमएल.एक्शनलिंक ("एक्वाइवलेंट रिकोलॉमी", "इंडेक्स", नया {सॉर्टआउडर = व्यूबैग.वॉल्यूसर्टपेर्म}) & lt; / th & gt; & Lt; / टीआर & gt; & Lt; / तालिका & gt; } @ एचटीएमएल.पार्टील ("_ टेबल", मॉडल) फिर नियंत्रक में मेरे पास
पब्लिक एक्शन रिजल्ट इंडेक्स (IEnumerable & lt; स्ट्रिंग & gt; ब्रांड, IEnumerable & lt; स्ट्रिंग & gt; अनुशासन, IEnumerable & lt; स्ट्रिंग & gt; महीनों, स्ट्रिंग सॉर्ट ऑडर) {ViewBag.BrandSortParam = String.IsNullOrEmpty (sortOrder)? "Brand_desc": ""; ViewBag.DisciplineSortParm = sortOrder == "अनुशासन"? "Discipline_desc": "अनुशासन"; ViewBag.MonthSortParm = sortOrder = "माह"? "महीना_डेस्क": "महीने"; ViewBag.QuantitySortParm = sortOrder == "मात्रा"? "Quantity_desc": "मात्रा"; ViewBag.ValueSortParm = sortOrder == "मूल्य"? "Value_desc": "मूल्य"; Model.ExposureRecords = फ़िल्टर एक्सपोजर (ब्रांड, विषयों, महीनों); Model.ExposureRecords = सॉर्ट करें (सॉर्टऑर्डर, मॉडल। एक्सपोज़ररेकर्स); अगर (Request.IsAjaxRequest ()) PartialView ("_ Table", मॉडल) लौटाता है; वापसी देखें (मॉडल); }
मेरा सुझाव क्लाइंट-साइड लाइब्रेरी का उपयोग करना होगा छंटनी नियंत्रक में किया जा सकता है, लेकिन मेरे अनुभव में, यह आमतौर पर दर्दनाक है मैंने हाल ही में जो प्रयोग किया है, वह उस प्रोजेक्ट में पूरा करने के लिए किया गया है, हालांकि इसमें से चुनने के कई विकल्प हैं (ऊपर पॉर्शिी की टिप्पणी देखें)।
सॉर्ट करने योग्य उपयोग करने के लिए, "सॉर्ट करने योग्य" वर्ग को अपनी तालिका में जोड़ें । इसके अलावा, अपने एजेक्स। बीबीएनिफ़ाएजएक्सओप्शन में ऑन कॉम्प्लेटे प्रॉपर्टी का इस्तेमाल करते हुए "मेन्टेरटेबल" जेएस को चलाने के लिए सुनिश्चित करें, इस तरह तालिका एजेक्स कॉल के बाद सॉर्ट करेगी। इस तरह से:
@using (अजाक्स। बेन्फिनफॉर्म (नया अजाक्स ऑप्शन () {एचटीटीपी विधि = "जाओ", सम्मिलनमोड = प्रविष्टिमोड। रीप्ले, अपडेटटैबैगआईडी = "एक्स्पोज़र रिकॉर्ड्स", ऑन कॉम्पलेक्ट = "मेर्टेरटेबल"}) ) {...} फ़ंक्शन मेर्टेबल () {sorttable.makeSortable (document.getElementById ('एक्सपोजर रिकॉर्ड्स')); };
Comments
Post a Comment