【问题标题】:How to assign the data dynamically to jqGrid?如何将数据动态分配给jqGrid?
【发布时间】:2012-02-18 14:15:36
【问题描述】:

这是我创建 jqGrid 的代码

$("#ptDataGrid").jqGrid({
                    datatype: 'local',
                    data: arrSpecData,
                    colModel: colmod,
                    rowNum: 10,
                    rowList: [10],
                    pager: '#ptPager',
                    gridview: true,
                    rownumbers: false,
                    viewrecords: true,
                    loadonce:false,
                    hidegrid: false,
                    autowidth: true,
                    caption: 'Crank Pin',
                    height: '100%',
                });

然后我对我的数据应用了一些过滤器并创建了另一个名为 FilteredData 的数组。现在我想将这个新的数据源分配给我的网格。我已经尝试了所有我知道的方法。但没有任何效果。那么,我们如何将新的数据源动态分配给 jqGrid 呢?请提出一些分配方法。

                dataGrid.setGridParam({ data: filterdData });
                dataGrid[0].refreshIndex();  
                dataGrid.trigger("reloadGrid"); 

我得到的结果仍然相同:(

解决方法 #1

 $('#divGrid').children().remove();
 $('#divGrid').html(' <table id="ptDataGrid" class="jqgriddata"><tr><td/></tr></table><div id="ptPager"></div> ');  

 createGrid(filterdData,true);

【问题讨论】:

  • 我不知道你如何测试我的建议。在我的答案的“更新”部分,我将 lint 附加到了演示中。
  • @Oleg,我也试过你的方法。但它没有按预期工作。它显示了更新的结果以及以前的数据。
  • 对不起,你错了!它只显示更新的数据。只需重复您的实验或仔细查看我的演示。您可以保存html页面,修改mydata1mydata2的数据,看看它确实有效。

标签: jquery jquery-plugins jqgrid jqgrid-formatter


【解决方案1】:

您可以先针对setGridParam设置新的data,然后调用refreshIndex方法(见the answer)更新内部使用的_index参数。

更新:单击the demo 上的“更改数据”按钮以验证该方法是否有效。

【讨论】:

  • 你的演示对我有用,但是当我与我的代码集成时,它给了我同样的老问题。我想,我的代码中遗漏了一些东西。我会检查的。
  • @Dinesh:您只发布了您使用的代码的小片段,所以我找不到错误。 jqGrid 内部不使用更多设置data 和调用refreshIndex。所以这是正确的方法。什么是在您的网格中不起作用?您的错误可能在您使用的colModel 或数据arrSpecData 中。这些是您问题中最重要的部分。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-06
  • 1970-01-01
  • 1970-01-01
  • 2016-03-09
  • 1970-01-01
  • 1970-01-01
  • 2012-06-04
相关资源
最近更新 更多