Ext js动态更新分页工具栏的总数

AMe*_*ber 11 extjs javascript-framework

这应该相当简单,但我还没有找到办法.

我使用的是ExtJs v.3.3.

我有一个网格面板,允许使用上下文菜单删除记录.

网格具有附加到面板商店的分页工具栏.

删除过程向服务器发送ajax请求,成功后我从商店中删除记录(使用remove方法).

问题是分页工具栏没有反映商店中的变化,即在重新加载商店之前记录的总量不变.

有没有办法在分页工具栏中设置记录总数?

谢谢

Nit*_*ate 10

这就像ExtJs ver 4.1.3的魅力.

gridStore.add(record);                    //Add the record to the store    
gridStore.totalCount = gridStore.count(); //update the totalCount property of Store
pagingToolbar.onLoad();                   //Refresh the display message on paging tool bar
Run Code Online (Sandbox Code Playgroud)


It *_*unt 5

在数据库中删除数据后,您是否无法在响应中返回totalProperty值?

编辑:

您需要首先正确构建您的响应.这是根据分页工具栏的API文档看起来的样子.

如果使用商店的autoLoad配置:

  var myStore = new Ext.data.Store({
    reader: new Ext.data.JsonReader({
        totalProperty: 'results', 
        ...
    }),
    ...
    });
    var myStore = new Ext.data.Store({
    autoLoad: {params:{start: 0, limit: 25}},
    ...
    });
Run Code Online (Sandbox Code Playgroud)

从服务器发回的数据包将具有以下形式:

{
"success": true,
"results": 2000, 
"rows": [ // *Note: this must be an Array 
    { "id":  1, "name": "Bill", "occupation": "Gardener" },
    { "id":  2, "name":  "Ben", "occupation": "Horticulturalist" },
    ...
    { "id": 25, "name":  "Sue", "occupation": "Botanist" }
]
}
Run Code Online (Sandbox Code Playgroud)


Tow*_*wer 5

这对我来说效果很好:

me.gridStore.add(data);

// Manually update the paging toolbar.
me.gridStore.totalCount = 500;
me.pagingToolbar.onLoad();
Run Code Online (Sandbox Code Playgroud)