如何从最初加载数据中抑制jqgrid?

我在模式弹出窗口中有一个jqgrid,其数据依赖于某些输入。 我这样做是通过根据下面的输入设置网格的url选项,然后显示弹出窗口:

$(ContainerGrid.Grid).setGridParam({ url: urlGetContainers + '?CRALineId=' + currentCRALineId }).reloadGrid(); 

当网格首次加载到屏幕上时,它不会显示,并且在显示模式弹出窗口之前不需要检索数据。 不幸的是,jqgrid仍然尝试根据其url选项发出获取数据的请求。

我已经尝试使用hiddengrid属性最初隐藏/折叠网格,这也使它不会发出数据请求。 但这不起作用,因为我找不到以编程方式显示/扩展网格。

有没有办法抑制jqgrid从最初加载数据?

在模态弹出窗口的“显示”事件中初始化网格。 您可以动态生成jqGrid并将其插入DOM,然后使用常规初始化代码对数据进行后期绑定。

当我需要我的网格只在检索到URL的哈希部分时加载数据时,我有类似的需求(URL的哈希部分决定了为我的网格设置filter的内容,然后数据可以加载到格)。 因此,为了防止我的网格在启动时加载数据,这就是我所做的:

在网格设置:

 $("#grid").jqGrid({ url:"", mtype:"", ... 

后来当我需要实际加载数据时:

 $("#grid").jqGrid("setGridParam",{datatype: "json", mtype: 'POST', url: myUrl, postData: params}).trigger("reloadGrid"); 

我还发现有必要在上面的重新加载之前做一个{postData:null},以确保以后post中的post变量不包含在以后的post中。