【问题标题】:How to suppress jqgrid from initially loading data?如何抑制 jqgrid 最初加载数据?
【发布时间】:2010-12-23 10:30:19
【问题描述】:

我在模态弹出窗口中有一个 jqgrid,它的数据依赖于某些输入。我通过根据输入设置网格的 url 选项来做到这一点,如下所示,然后显示弹出窗口:

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

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

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

有什么方法可以抑制 jqgrid 初始加载数据?

【问题讨论】:

    标签: jquery jqgrid


    【解决方案1】:

    当我需要我的网格仅在检索到 URL 的散列部分后才加载数据时,我和你有类似的需求(URL 的散列部分决定了为我的网格设置的过滤器,然后数据可以是加载到网格中)。所以为了防止我的网格在启动时加载数据,这就是我所做的:

    关于网格设置:

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

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

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

    我还发现有必要在上述重新加载之前执行 {postData: null} 以确保以前帖子中的帖子变量不包含在以后的帖子中。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 不错!如果弹出窗口多次打开但它可以工作,我只需要确保我不会多次初始化。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-19
      • 1970-01-01
      • 1970-01-01
      • 2011-08-11
      • 1970-01-01
      相关资源
      最近更新 更多