我有一个用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替代品,我很乐意使用它,
谢谢!
答案 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以查看可以传递给方法的完整参数列表。