दिलचस्प पोस्ट
विशिष्ट दिनांक पर बनाई गई फ़ाइलों की खोज करने के लिए 'ढूंढें' का उपयोग कैसे करें? एंड्रॉइड लॉलीपॉप टूलबार: स्क्रॉल करते समय उपकरण पट्टी को छुपाने / दिखाने के लिए कैसे? CSS3 पारदर्शिता + ढाल Json.NET धारावाहिक / धारा से / के लिए deserialize कर सकते हैं? स्ट्रिंग से होस्टनाम नाम निकालें प्रतिबद्ध करने से पहले 'git add' को कैसे पूर्ववत करें? एंड्रॉइड में डिवाइस के आईएमआईआई / ईएसएन प्रोग्रामेटिकल कैसे प्राप्त करें? *, /, +, -,% ऑपरेटरों का उपयोग किए बिना 3 से संख्या विभाजित करें क्यों नल एक वस्तु है और रिक्त और अपरिभाषित के बीच अंतर क्या है? स्प्रिंग @ ट्रांज़ैक्शन विधि कॉल एक ही कक्षा में विधि द्वारा कॉल करती है, काम नहीं करती? PostgreSQL क्वेरी लॉग करने के लिए कैसे? स्वास्थ्यकैट पृष्ठभूमि डिलीवरी जब ऐप नहीं चल रहा है मैं जी.आई.एस.पी.ओ. आउटपुटस्ट्रीम का इस्तेमाल करते हुए एक स्ट्रिंग ज़िप और अनझिप कैसे कर सकता हूं जो .Net के साथ संगत है? विदेशी कुंजी के रूप में समग्र कुंजी सी ++ में एक्सएमएल पार्सर का क्या उपयोग करना चाहिए?

खोज / फिल्टर बॉक्स में निर्मित किए गए 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 फ़ंक्शंस का उपयोग करके आप अपने स्वयं के कस्टम फ़िल्टरिंग कार्य कर सकते हैं।