javascript - स्ट्रिंग फ़िल्टर में दर्ज मान को कैसे संशोधित करें




string extjs filter extjs3 (2)

मेरे ग्रिड में 3 कॉलम के लिए मेरे पास स्ट्रिंग फ़िल्टर है। यह ठीक काम कर रहा है। तीसरे कॉलम में जिसका dataindex abc मैं प्रवेश मूल्य को संशोधित करना चाहता हूं।

उदाहरण के लिए यदि मैं 0 दबाता हूं तो यह 0 से युक्त सभी डेटा फ़िल्टर करता है। मैं फ़िल्टर करने के लिए 0 के बजाय 'नहीं' दबा देना चाहता हूं। इसी तरह मैं 1 के साथ डेटा फ़िल्टर करने के लिए 1 के बजाय 'हां' का उपयोग करना चाहता हूं।

फ़िल्टर बनाने के लिए मेरा कोड।

this.filters = new Ext.ux.grid.GridFilters({
    filters: this.filter,
    local: true,
    autoReload: false,
});
this.features = [this.filters];
this.plugins = [this.filters];

फ़िल्टर डालने के लिए कोड।

gridEl.filter.push({
    type: header.getAttribute("FILTER"),
    dataIndex: header.getAttribute("DATAINDEX"),
    encode: false,
    metaID: header.getAttribute("M"),
});

मदद के लिए धन्यवाद।


Answers

उदाहरण के अनुसार docs.sencha.com/extjs/4.2.0/extjs-build/examples/grid-filtering/… अपना स्वयं का बूलियनफ़िल्टर बनाएं और आपको शर्त जोड़ें। नीचे मेरा स्निपेट देखें।

Ext.define('MyFilter.CustomBooleanFilter', {
   extend: 'Ext.ux.grid.filter.StringFilter',
   alias: 'gridfilter.customboolean',

   validateRecord : function (record) {
       var rValue = record.get(this.dataIndex),
           fValue = this.getValue();
       return rValue == fValue || rValue == (fValue == "1" || "true".indexOf(fValue.toLowerCase()) == 0 || "yes".indexOf(fValue.toLowerCase()) == 0);
    }
});

यहां कामकाजी डेमो देखें। https://fiddle.sencha.com/#fiddle/1f5l

अगर आप इसकी तलाश नहीं कर रहे हैं तो मुझे बताएं। मैंने अपनी समझ के अनुसार क्या किया है संपादित करें: लेकिन मुझे लगता है कि यह वही है जो आप चाहते हैं, फिर अपने इच्छित पाठ को बदलने के लिए बूलियन फ़िल्टर का उपयोग करें। हां और नहीं की तरह उपयोगकर्ता के प्रवेश के मुकाबले यह अधिक सुविधाजनक है। जैसा कि आपके पास केवल दो मान हैं।


जैसा कि बताया गया है, आपको पूंजी "ओ" के साथ indexOf को कॉल करने की आवश्यकता है। यह भी ध्यान दिया जाना चाहिए कि जावास्क्रिप्ट क्लास में एक आरक्षित शब्द है, आपको इस डेटा विशेषता प्राप्त करने के लिए कक्षा नाम का उपयोग करने की आवश्यकता है। संभवतः यह असफल होने का कारण यह है कि यह एक शून्य मान लौटा रहा है। आप अपनी कक्षा मूल्य प्राप्त करने के लिए निम्नलिखित कर सकते हैं ...

var test = elm.getAttribute("className");
//or
var test = elm.className




javascript string extjs filter extjs3