我想在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事件。这在我之前的代码中创建了一个无限循环。
答案 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事件。这在我之前的代码中创建了一个无限循环。