ExtJs Gridpanel स्टोर ताज़ा करें




(9)

मैं डेटाबेस से ExtJs Gridpanel बाध्यकारी हूँ और मेरे ग्रिडपैनल के नीचे "हटाएं" बटन जोड़ें। डिलीट बटन हैंडलर का उपयोग करके, मैंने ग्रिडपेनल पर चयनित रिकॉर्ड हटा दिया है। लेकिन, हटाने के बाद, ग्रिड रीफ्रेश नहीं होता है (इसे डेटाबेस से हटा दिया जाता है लेकिन रीफ्रेश की वजह से ग्रिड पर दिखाया जाता है)।

हैंडलर हटाने के बाद मैं ग्रिड रीफ्रेश कैसे कर सकता हूं?


Answers

grid.store = store;
store.load({ params: { start: 0, limit: 20} });
grid.getView().refresh();

दृश्य को रीफ्रेश करने का प्रयास करें:

Ext.getCmp('yourGridId').getView().refresh();

दशा और एमएमटी समाधान का संयोजन:

  Ext.getCmp('yourGridId').getView().ds.reload();

3.4 में एक और दृष्टिकोण (यह नहीं पता कि यह उचित है या नहीं): आप इस तरह एक डिलीट हैंडलर प्राप्त कर सकते हैं, मानते हैं कि प्रत्येक पंक्ति में 'डिलीट' बटन होता है।

handler: function(grid, rowIndex, colIndex) {
    var rec = grid.getStore().getAt(rowIndex);
    var id = rec.get('id');
    // some DELETE/GET ajax callback here...
    // pass in 'id' var or some key
    // inside success
    grid.getStore().removeAt(rowIndex);
}

मुझे एक समान समस्या थी। मुझे बस इतना करना था कि store.load(); टाइप करें store.load(); हटाए हैंडलर में। बाद में grid.getView().refresh(); टाइप करने की कोई आवश्यकता नहीं थी grid.getView().refresh();

इसके बजाय आप डिलीट हैंडलर में store.remove(record) भी टाइप कर सकते हैं; - यह सुनिश्चित करता है कि हटाए गए रिकॉर्ड अब ग्रिड पर नहीं दिखाए जाते हैं।


ग्रिड रीफ्रेश करने के लिए डीएस पुनः लोड करें।

ds.reload();

grid.getStore().reload({
  callback: function(){
    grid.getView().refresh();
  }
});

Model.destroy की तुलना में store.remove का उपयोग करना बेहतर है। उस बटन के लिए हैंडलर क्लिक करें इस तरह दिख सकता है:

destroy: function(button) {
    var grid = button.up('grid');
    var store = grid.getStore();
    var selected = grid.getSelectionModel().getSelection();

    if (selected && selected.length==1) {
        store.remove(selected);
    }
}

यदि आप मेवेन का उपयोग कर रहे हैं, तो प्रोजेक्ट की pom.xml फ़ाइल में मेवेन कंपाइलर प्लगइन जोड़ें।

<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
        </plugins>
    </build>

इसने मेरे लिए मुद्दा हल किया।