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

时间:2009-12-04 22:47:14

标签: jquery jqgrid

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

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

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

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

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

2 个答案:

答案 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},以确保以后帖子中的帖子变量不包含在以后的帖子中。