jqGrid - 如何设置网格最初不加载任何数据?

时间:2010-10-14 15:05:32

标签: jquery jqgrid load

如何创建网格但不加载任何数据?

如果我省略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 ..想让网格最初没有加载任何数据。

有什么想法吗?

3 个答案:

答案 0 :(得分:31)

您最初应该使用datatype: 'local'。在您需要加载数据时,您应该将datatype更改为jsonxml

$("#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。

它对我有用。