JQGrid未从数组变量加载数据

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

我有一个困扰了我几天的问题。最初,我在javascript函数中测试了一种硬编码方法,该方法加载包含简单数组的局部变量,如下所示:

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;。