EXTJS使用数据存储重新获取网格

时间:2010-12-15 16:48:27

标签: extjs grid

我有一个用ExtJS制作的网格,我将它呈现给我定义的div,当请求刷新时,我只需使用JQuery“清空”div,然后每次重新渲染网格创建新对象: / p>

    var grid = new xg.GridPanel({
    store: store,
    columns: [
    ...
    renderTo: 'db-grid'

然后清空div我用这个:

    $("#db-grid").empty();

这适用于3或4次刷新,然后它似乎加载得非常慢,我想这是因为它再次重新创建所有这些对象,每次更改的唯一内容是“存储”。我通过AJAX请求获得了这个,有没有办法在不创建新网格的情况下刷新它?

我是ExtJS的新手,我在这里从JQuery做了一些过渡,这就是为什么我在使用JQuery的“empty()”函数,如果你知道一个ExtJS替代品,我很乐意使用它,

谢谢!

1 个答案:

答案 0 :(得分:4)

http://dev.sencha.com/deploy/dev/docs/处查看商店的load(Object options)reload(Object options)方法。

可以在Ext.PagingToolbar中看到此功能的示例。该类包含一个刷新网格及其存储的按钮,每次都不会破坏网格:

    // private
    doLoad : function(start){
        var o = {}, pn = this.getParams();
        o[pn.start] = start;
        o[pn.limit] = this.pageSize;
        if(this.fireEvent('beforechange', this, o) !== false){
            this.store.load({params:o}); // here is the call you're interested in
        }
    },
然后只需从方法doLoad()中调用<{doRefresh()

    doRefresh : function(){
        this.doLoad(this.cursor);
    },

为了完整的示例,我包含了这段代码,但实际上你需要担心的是load()或reload()方法。请务必阅读API以查看可以传递给方法的完整参数列表。