दिलचस्प पोस्ट
Ghostscript 9.01 का उपयोग कर पीडीएफ का उपयोग करना आर में डेटा के लिए बहुपद मॉडल फिटिंग ईक्लीपस के कंसोल में बैकस्पेस \ b कैसे काम करें? स्थैतिक आयात को शामिल करने के लिए एक्लिप्स ऑप्टीमाइज़ आयात Node.js + Nginx – अब क्या? टुकड़ों के साथ नेविगेशन के ऊपर कार्रवाईबार सख्त मानदंड: संदर्भ से केवल चर को पारित किया जाना चाहिए निर्दिष्ट एक्सटेंशन के साथ सभी फाइलों को सूचीबद्ध करने के लिए आर का उपयोग करना इकाई फ़्रेमवर्क कोड के लिए SQL सर्वर एक्सप्रेस कनेक्शन स्ट्रिंग पहले फायरबेज – क्या एक साझा रहस्य है auth.uid? एंड्रॉइड 6.0 (मार्शमॉल) के साथ अपाचे एचटीटीपी कनेक्शन चेक बाधा में दिनांक का उपयोग करके, ओरेकल Std :: function का प्रदर्शन ओवरहेड क्या है? शेल स्क्रिप्ट में वैश्विक परिवेश चर कुकी पथ और सबफ़ोल्डर पृष्ठों के लिए इसकी पहुंच

खोज / फिल्टर बॉक्स में निर्मित किए गए jqGrid डेटा को फ़िल्टर करने के तरीके

मैं चाहता हूं कि उपयोगकर्ता ग्रिड डेटा को आंतरिक खोज बॉक्स का उपयोग किए बिना फ़िल्टर कर सकें।

मैंने तिथि (और से) के लिए दो इनपुट फ़ील्ड बनाए हैं और अब ग्रिड को इसके फ़िल्टर के रूप में अपनाने के लिए और फिर नए डेटा का अनुरोध करने की आवश्यकता है।

ग्रिड डेटा (ग्रिड को बायपास करते हुए) के लिए एक सर्वर अनुरोध स्थापित करना और प्रतिक्रिया डेटा को काम करने के लिए ग्रिड का डेटा सेट करना – क्योंकि जैसे ही प्रयोक्ता परिणाम को पुन: ऑर्डर करने या पृष्ठ आदि परिवर्तित करने की कोशिश करता है। ग्रिड नए डेटा का अनुरोध करेगा एक खाली फिल्टर का उपयोग कर सर्वर से

मैं इसे हासिल करने के लिए ग्रिड एपीआई को ढूंढने में असमर्थ हूं – क्या किसी के पास कोई विचार है? धन्यवाद।

वेब के समाधान से एकत्रित समाधान "खोज / फिल्टर बॉक्स में निर्मित किए गए jqGrid डेटा को फ़िल्टर करने के तरीके"

फ़ंक्शन और trigger('reloadGrid') सहित postData पैरामीटर के संबंध में आपको समस्या बहुत आसान हो सकती है। मैं इस विचार को अधिक विस्तृत समझाता हूं।

हमें mtype: "GET" उपयोग mtype: "GET" इंटरफ़ेस प्रदर्शित करने के बाद मानक खोज / फिल्टर बॉक्स करते ही एकमात्र चीज़ यूआरएल के लिए कुछ अतिरिक्त मापदंडों को जोड़ती है, सर्वर को भेज रहा है और ग्रिड डेटा को पुनः लोड कर रहा है। यदि आपके पास खोज / छानने के लिए अपना इंटरफ़ेस है (उदाहरण के लिए कुछ नियंत्रण या चेकबॉक्स) आपको अपने यूआरएल को स्वयं संलग्न करना चाहिए और trigger('reloadGrid') संबंध में ग्रिड को पुनः लोड करना चाहिए। ग्रिड में जानकारी को रीसेट करने के लिए आप जो भी पसंद करते हैं उसे चुन सकते हैं। उदाहरण के लिए, आप चुनिंदा नियंत्रणों में शामिल कर सकते हैं, जिसमें आपके पास "फ़िल्टरिंग नहीं" जैसी कोई विकल्प है।

अधिक सटीक होने के लिए, एप.एन.एम. सी। एमवीसी में jqgrid को पुनः लोड करने के तरीके से कोड की तरह दिखना चाहिए जब मैं ड्रॉपडाउन सूची बदलता हूं :

 var myGrid = jQuery("#list").jqGrid({ url: gridDataUrl, postData: { StateId: function() { return jQuery("#StateId option:selected").val(); }, CityId: function() { return jQuery("#CityId option:selected").val(); }, hospname: function() { return jQuery("#HospitalName").val(); } } // ... }); // var myReload = function() { myGrid.trigger('reloadGrid'); }; var keyupHandler = function (e,refreshFunction,obj) { var keyCode = e.keyCode || e.which; if (keyCode === 33 /*page up*/|| keyCode === 34 /*page down*/|| keyCode === 35 /*end*/|| keyCode === 36 /*home*/|| keyCode === 38 /*up arrow*/|| keyCode === 40 /*down arrow*/) { if (typeof refreshFunction === "function") { refreshFunction(obj); } } }; // ... $("#StateId").change(myReload).keyup(function (e) { keyupHandler(e,myReload,this); }); $("#CityId").change(myReload).keyup(function (e) { keyupHandler(e,myReload,this); }); 

यदि उपयोगकर्ता id=StateId या id=CityId (माउस या कीबोर्ड के साथ) के साथ चयन बॉक्स में चयनित विकल्प चुनते हैं, तो फ़ंक्शन myReload कहा जाएगा, जो कि jqGrid में डेटा को पुनः लोड करने के लिए बाध्य है। संबंधित $.ajax अनुरोध के दौरान, जो jqGrid हमारे लिए करते हैं, postData पैरामीटर से मान को data पैरामीटर के रूप में $.ajax । यदि data गुणों में से कुछ कार्य कर रहे हैं, तो ये फ़ंक्शन $.ajax । इसलिए चयन बक्से के वास्तविक डेटा को लोड किया जाएगा और सभी डेटा को सर्वर पर भेजे गए डेटा में जोड़ दिया जाएगा। आपको केवल अपने सर्वर भाग में इस मापदंडों को पढ़ने के लिए कार्यान्वित करने की आवश्यकता है।

इसलिए postData पैरामीटर से डेटा यूआरएल में जोड़ा जाएगा (प्रतीक '?' और 'और' स्वचालित रूप से जोड़ दिए जाएंगे और रिक्त स्थान जैसे सभी विशेष प्रतीकों को भी सामान्य रूप से एन्कोड किया जाएगा)। postData के उपयोग के postData :

  1. postData पैरामीटर के अंदर फ़ंक्शन का उपयोग करने से आप सभी उपयोग किए जाने वाले नियंत्रणों से वास्तविक मूल्य को पुनः लोड करने के पल में लोड कर सकते हैं;
  2. आपके कोड में बहुत स्पष्ट संरचना है
  3. सभी काम करता है न केवल HTTP GET अनुरोधों के साथ ठीक है, लेकिन HTTP पोस्ट के साथ भी;

यदि आप कुछ "फिल्टरिंग" या "सभी" प्रविष्टियों का चयन करें बॉक्स में StateId , तो आप उस फ़ंक्शन को संशोधित कर सकते हैं जो StateId पैरामीटर के मान की गणना करता है जो कि सर्वर यूआरएल से जुड़ा होना चाहिए

 StateId: function() { return jQuery("#StateId option:selected").val(); } 

निम्नलिखित की तरह कुछ करने के लिए:

 StateId: function() { var val = jQuery("#StateId option:selected").val(); return val === "all"? "": val; } 

सर्वर साइड पर आपको StateId लिए कोई फ़िल्टरिंग नहीं करनी चाहिए, अगर आपको कोई पैरामीटर के रूप में खाली मान प्राप्त होता है।

वैकल्पिक रूप से आप myGrid.setCaption('A text'); उपयोग कर सकते हैं myGrid.setCaption('A text'); एक ग्रिड शीर्षक बदलने के लिए यह उपयोगकर्ता को और अधिक स्पष्ट करने की अनुमति देता है, कि ग्रिड में डेटा कुछ मानदंडों के साथ फ़िल्टर किया जाता है।

मेरे पास वही आवश्यकता थी, और (ओलेग की सहायता के साथ) इस के साथ आया:

यहां छवि विवरण दर्ज करें

असल में, उपयोगकर्ता "कर्मचारी नाम" पाठ बॉक्स में टाइप करना शुरू करते हैं, और तुरंत परिणाम jqGrid में दिखाए जाते हैं।

मैं इसे कैसे कार्यान्वित करता हूं इसका विवरण यहां दिया गया है:

jqGrid – फ़िल्टर बदलें / खोज को पॉप अप करें – पृष्ठ पर सपाट होना – कोई संवाद नहीं

ध्यान दें कि मैं विशेष रूप से अपने jqGrid के लिए सभी जेएसओएन डेटा को अग्रिम रूप से लोड करता हूं, और बड़े डेटा सेट के लिए, इस कोड को आईफोन / एंड्रॉइड डिवाइस पर चलाने के समय एक विलंब होता है जैसा कि आप प्रत्येक अक्षर टाइप करते हैं

लेकिन, डेस्कटॉप वेब ऐप्स के लिए, यह एक महान समाधान है, और उपयोगकर्ता के लिए jqGrid बहुत दोस्ताना बनाता है।

ReloadGrid() और jquery फ़ंक्शंस का उपयोग करके आप अपने स्वयं के कस्टम फ़िल्टरिंग कार्य कर सकते हैं।