JQGrid未从数组变量加载数据
我有一个困扰了我几天的问题。最初,我在javascript函数中测试了一种硬编码方法,该方法加载包含简单数组的局部变量,如下所示:JQGrid未从数组变量加载数据,jqgrid,dynamic-arrays,Jqgrid,Dynamic Arrays,我有一个困扰了我几天的问题。最初,我在javascript函数中测试了一种硬编码方法,该方法加载包含简单数组的局部变量,如下所示: var myGridData = [ { ID: "55505", Item: "Mortgage foreclosure", Class: "36", Status: "Pending" }, { ID: "55506", Item: "Food truck parks", Class: "43", Status: "Pending" }]; for (var
var myGridData = [
{ ID: "55505", Item: "Mortgage foreclosure", Class: "36", Status: "Pending" },
{ ID: "55506", Item: "Food truck parks", Class: "43", Status: "Pending" }];
for (var i = 0; i <= myGridData.length; i++)
jQuery("#popGrid").jqGrid('addRowData', i + 1, myGridData[i]);
而上述硬编码的方法是有效的。但是,当我根据用户从另一个网格中的选择将数据动态分配给my GridData变量时,我的网格中会填充空行,即变量中每个字符对应一行,即使用上面的154行,而不是预期的两行。我已经仔细检查了这两个字符串,它们是相同的,包括正确的限定符、括号等,所以我不知所措。有什么想法吗
提前感谢,
尼尔
感谢Oleg,我可以在创建过程中查看填充网格…一旦我更好地理解了所有内容。我有点像是在暗中捅人。下面,我包含了用于从“主页”获取数组数据字符串的代码,然后通过隐藏字段将其传递到对话框。我随后介绍了JQGrid参数和colModel:
var temp = document.getElementById('<%=txtArray.ClientID%>').value;
var myGridData = temp;
jQuery("#popGrid").jqGrid({
multiselect: true,
data: myGridData,
datatype: 'local',
colNames: [
'ID',
'Item',
'Class',
'Status',
],
colModel: [
{ name: 'ID', index:'ID', key: true, width:50 },
{ name: 'Item', index: 'Item', key: true, width:100 },
{ name: 'Class', index: 'Class', key: true, width: 150 },
{ name: 'Status', index: 'Status', key: true, width: 250 },
],
multiSort: true,
sortable: true,
loadonce : true,
rownum: 5,
width: 850,
height: 100,
scrollOffset: 1,
shrinkToFit: true,
sortname: 'ID',
viewrecords: true,
gridview: true,
sortorder: "desc",
pager: '#popPager'
});
您应该发布当前代码,包括colModel和其他jqGrid参数。一般来说,使用addRowData填充网格是不好的。而不是在创建网格时填充网格。需要使用data:myGridData选项和gridview:true来提高性能。感谢Oleg,刚刚编辑了原始帖子以包含额外信息。代码中最大的问题是对一列使用key:true属性。您应该从除列“ID”之外的所有列中删除key:true。我建议您从所有列中删除不需要的索引属性,并删除loadonce:true,这在数据类型为“local”的情况下没有任何意义。你应该考虑使用高度:“自动”而不是高度:100。在这种情况下,将不需要scrollOffset:1。解决你的主要问题。我想您应该替换var myGridData=temp;到var myGridData=$.parseJSONtemp;。