如何创建网格但不加载任何数据?
如果我省略url
选项,则会触发loadError
回调。
目前我们设置url:NoData.json
,其中NoData.json是一个没有行的静态文件。
问题发生在我们的loadComplete
回调中,如果网格中没有数据,我们想要消息 - 除了我们不希望在初始加载时显示此消息。目前我们处理如下:
//jqGrid load complete handler
function loadComp(grid) {
if (grid.getGridParam("url") != "NoData.json" && grid.getGridParam("records") == 0) {
setStatus("Your search did not return any results");
}
}
这看起来有点hacky ..想让网格最初没有加载任何数据。
有什么想法吗?
答案 0 :(得分:31)
您最初应该使用datatype: 'local'
。在您需要加载数据时,您应该将datatype
更改为json
或xml
:
$("#list").jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid');
答案 1 :(得分:21)
我想创建一个网格,在网页加载时不加载数据,但是当用户点击刷新或使用搜索时加载数据。我的解决方案有点笨拙,但非常简单,效果很好。
我正在使用回调事件loadBeforeSend
在页面加载时停止对数据的ajax请求。我的回调函数将自行删除,因此它只会被执行一次。
loadBeforeSend: function (xhr, settings) {
this.p.loadBeforeSend = null; //remove event handler
return false; // dont send load data request
}
答案 2 :(得分:-2)
初始化网格时不要设置URL。在使用setGridParam函数加载网格之前设置URL。
它对我有用。