我在模式弹出窗口中有一个jqgrid,其数据依赖于某些输入。我这样做是通过根据下面的输入设置网格的url选项,然后显示弹出窗口:
$(ContainerGrid.Grid).setGridParam({
url: urlGetContainers + '?CRALineId=' + currentCRALineId
}).reloadGrid();
当网格首次加载到屏幕上时,它不会显示,并且在显示模式弹出窗口之前不需要检索数据。不幸的是,jqgrid仍然试图根据其url选项发出获取数据的请求。
我尝试使用hiddengrid属性最初隐藏/折叠网格,这也使它不会发出数据请求。但这不起作用,因为我找不到以编程方式显示/扩展网格。
有没有办法抑制jqgrid从最初加载数据?
答案 0 :(得分:3)
在模态弹出窗口的“显示”事件中初始化网格。您可以动态生成jqGrid并将其插入DOM,然后使用常规初始化代码对数据进行后期绑定。
答案 1 :(得分:0)
当我需要网格只在检索到URL的哈希部分时加载数据时,我有类似的需求(URL的哈希部分决定了为我的网格设置过滤器的内容,那么数据可以是加载到网格中)。因此,为了防止我的网格在启动时加载数据,这就是我所做的:
在网格设置上:
$("#grid").jqGrid({
url:"",
mtype:"",
...
后来当我需要实际加载数据时:
$("#grid").jqGrid("setGridParam",{datatype: "json", mtype: 'POST', url: myUrl, postData: params}).trigger("reloadGrid");
我还发现有必要在上面的重新加载之前做一个{postData:null},以确保以后帖子中的帖子变量不包含在以后的帖子中。