我的网格底部有一个分页工具栏,顶部有一个“加载”按钮,可用于加载网格中的记录。
因此,最初网格中没有值,但在这种情况下,分页工具栏也会显示第1页的1,并且启用了“下一页”或“最后一页”的图标。
由于这个原因,当用户点击这些图标中的任何一个时,虽然没有加载记录但是在内部“page”和“start”的值被设置为NaN,然后用户点击“加载”按钮然后这些NaN值传递给服务器,这不是预期的。
也就是说,理想情况下,它应该传递page = 0& start = 0,因为它传递了page = NaN& start = NaN。服务器无法识别这些值并引发错误。
对此的一个快速解决方法是在服务器端修改代码,但目前这超出了我们团队工作的范围,因此我想知道如何实现以下操作:
问:如果网格没有记录,如何在分页工具栏中禁用“下一个”,“最后”图标?
或者,
问:如何在加载商店之前修改'page'和'start'变量的值,以便我们可以传递0而不是NaN?
我尝试在网格存储的beforeload事件中访问这些参数,但在那里我可以找到像startParam或pageParam这样的属性 - 显示参数名称,但找不到任何访问/修改值的方法。 / p>
有没有人对此有所了解?
提前致谢。
PS:使用的ExtJS版本是4。
答案 0 :(得分:2)
一种可能的解决方案是使用
store.loadPage(1);
而不是store.load();
。
第二种可能的解决方案是首先禁用工具栏,并在加载数据时启用它:
var grid = Ext.create('Ext.grid.Panel', {
// ...
store: store,
dockedItems: [{
xtype: 'pagingtoolbar',
store: store,
dock: 'bottom',
disabled: true
}]
});
store.on('load', function(){
grid.down('pagingtoolbar').enable();
});
答案 1 :(得分:1)
检查响应中的总计数,如果在网格为空时没有返回零,则会发生此类错误。