के साथ समस्याएं हैं मेरे पास मेरे वेब पेज पर एक केंडो ग्रिड है और मैं sessionStorage
का उपयोग करके ग्रिड फ़िल्टर को प्रोग्रामेटिक रूप से सहेजने की कोशिश कर रहा हूं और यह काम कर रहा है ज्यादातर भाग।केंडो - पृष्ठ पर कोड के माध्यम से ग्रिड फ़िल्टर को बचाने के लिए केवल तारीख फ़िल्टर ग्रिड कॉलम
मेरा मुद्दा यह है कि जब मैं किसी दिनांक कॉलम पर फ़िल्टर डालता हूं, जब मैं उस फ़िल्टर को फिर से लागू करने का प्रयास करता हूं, जब उपयोगकर्ता उस पृष्ठ पर वापस जाता है, तो यह अज्ञात कार्यों में से किसी एक में त्रुटि करता है b/सी toLowerCase()
विधि मौजूद नहीं है। यदि मैं स्ट्रिंग कॉलम पर फ़िल्टर कर रहा हूं तो फ़िल्टर ठीक काम करता है। मैं कई फ़िल्टर लागू कर सकता हूं और उन्हें sessionStorage
var पर सहेज सकता हूं और ग्रिड पर ठीक से पुनः आवेदन कर सकता हूं। केवल तारीख कॉलम के साथ मुझे समस्याएं हैं।
यह मुझे कुछ समय लिया यह पता लगाने की केन्डो ग्रिड सिंटैक्स का उपयोग फिल्टर पाने के लिए:
var theKgridFilters = $("#gridList").data("kendoGrid").dataSource.filter();
फिर एक sessionStorage
वर में संग्रहीत करना, मैं stringify()
वस्तु पड़ा वरना यह नहीं होगा कि वर में ग्रिड फिल्टर पकड़:
sessionStorage.setItem('theGridFilters', JSON.stringify(theKgridFilters));
इसके बाद, ग्रिड पर फिल्टर पुन: लागू करने, मैं स्ट्रिंग एक JSON ऑब्जेक्ट को वापस परिवर्तित करने के लिए बी/सी फिल्टर विशेषताओं के साथ एक वस्तु है, इसलिए मैं प्रयोग किया जाता है यह:
if (sessionStorage.theGridFilters) {
gridFilter = sessionStorage.theGridFilters;
gridFilter = $.parseJSON(gridFilter);
}
कौन सा ग्रिड डेटा स्रोत फिल्टर विशेषता के लिए लागू किया जाता है:
function anonymous(d, __f, __o) {
return (d.Last_Modified_Date.toLowerCase() == '2013-01-25t06:00:00.000z')
}
कहाँ:
filter: gridFilter,
जब मैं एक तारीख स्तंभ पर ग्रिड को फिल्टर, त्रुटि नीचे इस लाइन पर फेंकता फ़ील्ड जिसमें फ़िल्टर है Last_Modified_Date
है। मैं jQuery, जेएस इत्यादि के साथ काम करने के लिए बिल्कुल नया हूं, और जो मैंने पढ़ा है, से गुमनाम() एफएनएस फ्लाई पर बनाए जाते हैं, इसलिए मुझे विश्वास नहीं है कि मैं इसे बदल सकता हूं।
मैंने ऑनलाइन जांच की और toLowerCase()
से पहले toString()
फ़ंक्शन जोड़ने का उल्लेख किया गया। मैंने इसे डीबगर में करने की कोशिश की और यह काम किया लेकिन मुझे यकीन नहीं है कि यह परिवर्तन करने के लिए कोड के माध्यम से इसे कैसे पहुंचाया जाए। ऐसा लगता है कि आईई डीबगर के कॉल स्टैक के आधार पर अज्ञात फ़ंक्शन kendo.web.js फ़ाइल से कहा जाता है।
इसके अलावा, डीबगर में तारीख फ़ील्ड का मान नीचे दिखाया गया है:
d.Last_Modified_Date Wed Jan 25 00:00:00 CST 2013 Object, (Date)
तो मैं भी यकीन है कि अगर यह ऊपर गुमनाम fn है, जिसमें स्ट्रिंग के लिए है कि मूल्य समानता कर सकते हैं नहीं कर रहा हूँ : '2013-01-25t06:00:00.000z'
।
कृपया मुझे बताएं कि अगर किसी के पास इस तिथि को फ़िल्टर करने के लिए कोई अंतर्दृष्टि है तो समस्या को बचाएं। यह मुझे पागल कर रहा है। हो सकता है कि एक और तरीका है कि मुझे ग्रिड फ़िल्टर को सहेजने के बारे में पता नहीं है।
अग्रिम धन्यवाद, ब्रूस!
कैसे LAST_MODIFIED_DATE 'schema.model' में परिभाषित किया गया है? क्या आपने इसे स्पष्ट रूप से 'दिनांक' के रूप में परिभाषित किया था? – OnaBai
हाय ओनाबाई, हां इसे दिनांक के रूप में परिभाषित किया गया है: Last_Modified_Date: {type: "date", संपादन योग्य: false}, –
मुझे सत्रस्टॉरेज का उपयोग करने का विचार देने के लिए धन्यवाद। – friend