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

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

如果省略url选项, loadError触发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 ..想让网格最初没有加载任何数据。

有任何想法吗?

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

 $("#list").jqGrid('setGridParam',{datatype:'json'}).trigger('reloadGrid'); 

我想创建一个在加载页面时不加载数据但在用户单击刷新或使用搜索时加载数据的网格。 我的解决方案有点hacky但是非常简单并且工作得很好。

我正在使用回调事件loadBeforeSend在加载页面时停止数据的ajax请求。 我的回调函数将自行删除,因此它只会被执行一次。

 loadBeforeSend: function (xhr, settings) { this.p.loadBeforeSend = null; //remove event handler return false; // dont send load data request } 

初始化网格时不要设置URL。 在使用setGridParam函数加载网格之前设置URL。

这个对我有用。