1

这是我的网格:

   colModel: [  

            { name: "userGroupID", index: "userGroupID", width: 50, hidden:true, align: "left" }, 
            //{ name: "userId", index: "userId", width: 75, align: "left",title:false,search:false, sorttype:'text'},
            { name: "userInfoID", index: "userInfoID", width: 75, align: "left",hidden:true,title:false,search:true, sorttype:'text'},
            { name: "userID", index: "userID", width: 75, align: "left",title:false,search:true, sorttype:'text'},
            { name: "firstName", index: "firstName", width: 75, align: "left",title:false,search:false, sorttype:'text'},
            { name: "organizationName", index: "organizationName", width: 75, align: "left",title:false,search:false, sorttype:'text'},
            { name: 'action', index: 'action', width: 70, align: "left",sortable: false, search:false}          
            ],

我正在从服务器获取数据以填充网格并尝试将我自己的数据添加到网格中。我用了

var grid = jQuery("#jqTable");
   var data = [{"userGroupID":"2","userInfoID":"2","userID":"userID","firstName":"firstName","organizationName":"organizationName"}];
        //jQuery("#jqTableList").addRowData("userGroupID",data);
        grid.jqGrid('addRowData','1',data);
        //jQuery("#jqTableList").trigger("reloadGrid");

它在说:TypeError: t.p is undefined

u = t.p.rownumbers === true ? 1 : 0;

请帮我..

4

1 回答 1

1

addRowData以错误的方式使用方法。如果你想用它来添加多行你应该改变addRowData方法的第一个参数。

您可以在jqGrid的文档中阅读以下内容:

此方法可以一次插入多行。在这种情况下,数据参数应该是定义为的数组 [{name1:value1,name2: value2…}, {name1:value1,name2: value2…} ],第一个选项rowid应该包含数据对象的名称,该名称应该作为行的 id。rowid在这种情况下,名称不必是colMode

因此,例如,如果userGroupID包含可以解释为每一行的唯一值的唯一值,您可以使用addRowData以下形式

grid.jqGrid('addRowData', 'userGroupID', data);

在您当前发布的代码中,带有名称的列'1'将被解释为id. 顺便说一句,指定id网格的值非常重要。如果列userGroupID(或网格的其他列)确实可以用作 id,则应key: true在列中添加属性。该属性只能用于一列。

一般来说,addRowData如果在创建网格时数据是已知的,我不建议使用填充网格(详见答案)。如果你有网格,使用datetype: "local"它会更有效data: yourArrayWithData。如果您需要更换data网格,您可以使用

grid.jqGrid("getGridParam").data = myNewData;

答案

于 2012-12-19T07:19:23.700 回答