jqgrid 3.6.4是否支持数据类型:local

时间:2011-09-19 14:40:25

标签: javascript jquery jqgrid

我想在jqgrid上显示一些本地存储在客户端(以JS数组的形式)的数据。但是当我使用jqgrid 3.6.4时,没有任何反应,而对于jqgrid 4.0.0,它可以正常工作。

那么,jqgrid 3.6.4是否支持数据类型:local,还是有另一种方法来获取此版本的jqgrid中的本地数据?

我的代码段如下: objArrayData是数据数组。

jQuery("#testLookupTable").jqGrid({
                datatype: 'local',
                data: objArrayData,
                colNames:['Stmt ID','Code','Definition'],
                colModel:[
                        {name:'id',index:'id', width:0, align:'center', sortable:false, hidden:true},
                        {name:'code_Q',index:'code_Q', width:20, align:'center', sortable:false},
                        {name:'defn',index:'defn', width:20, align:'center', sortable:false}
                ],
                autowidth: true,
                hoverrows: true,
                gridview: true,
                height: '100px',
                sortname: 'id',
                viewrecords: true,
                sortorder: "desc",
                hidegrid: false  
            });

更新

addRowData无法正常工作。它一遍又一遍地重复数组中的数据。在IE中,这将导致stackoverflow。

我的新片段:

 jQuery("testLookupTable").jqGrid({
                datatype: 'local',
                //data: objArrayCR7,
                colNames:['Stmt ID','Code','Definition'],
                colModel:[
                        {name:'id',index:'id', width:0, align:'center', sortable:false, hidden:true},
                        {name:'code_Q',index:'code_Q', width:20, align:'center', sortable:false},
                        {name:'defn',index:'defn', width:20, align:'center', sortable:false}
                ],
                autowidth: true,
                hoverrows: true,
                gridview: true,
                height: '100px',
                sortname: 'id',
                viewrecords: true,
                sortorder: "desc",
                hidegrid: false,
                gridComplete: function(){
                    $('#testLookupTable').addRowData('code_Q',objArrayCR7);
                }  
            });

已解决已更新):

发现我的错误:

我应该把这一行:

  $('#testLookupTable').addRowData('code_Q',objArrayCR7);
<。>在.jqgrid()之外。

如果我错了,有人纠正我,我发现每次运行.addRowData()时网格会重新加载,所以每次都会触发gridComplete事件。这在我之前的代码中创建了一个无限循环。

2 个答案:

答案 0 :(得分:1)

从3.7版本开始支持填充data: objArrayData的本地jqGrid。如果您将data参数与gridview: true一起使用,则会获得最大的性能优势。

在3.6.4版本中,您必须使用addRowData填充网格。

我建议您仅使用最新版本的jqGrid。目前版本为4.1.2。

答案 1 :(得分:0)

发现我的错误:

我应该把这一行:

 $('#testLookupTable').addRowData('code_Q',objArrayCR7);
<。>在.jqgrid()之外。

如果我错了,有人纠正我,我发现每次运行.addRowData()时网格会重新加载,所以每次都会触发gridComplete事件。这在我之前的代码中创建了一个无限循环。