我有jqGrid如下..
$('#addPGrid').button();
jQuery("#pGrid").jqGrid({
datatype: "local",
height: 400,
width:500,
ondblClickRow:dblClck,
colNames:['PName','PValue',"pid","pValue"],
colModel:[ {name:'pName',index:'pName', width:140}, {name:'pValue',index:'pValue', width:100}, {name:'pId',index:'pId', width:1, hidden:true}, {name:'pValue',index:'pValue', width:1, hidden:true}],
caption: "FP" });
每次输入数据时,我都会创建一个jsonObject,并按如下所示将其添加到JqGrid,
var jsonObj = [];
jsonObj.push({pName: pNameP, pValue:pValuePlForGrid , pId:pId, dValue:dValueName});
jQuery("#pGrid").jqGrid('addRowData',1,jsonObj[0]);
我正试图以这种方式从网格中获取数据,
for(var u=1;u<=jQuery('#pGrid').jqGrid('getGridParam','records');u++)
{
alert(u);
var fg = jQuery("#pGrid").jqGrid('getRowData',u);
alert(fg.pName+" "+fg.pValue+" "+fg.pId+" "+fg.dValue);
}
仅显示rowId 1的元素,其余元素显示为undefined ..
plzhelp .. !!
答案 0 :(得分:1)
您的问题出在addRowData
的调用中:
.jqGrid('addRowData',1,jsonObj[0]);
您指定的行ID为1
,因此每行具有相同的ID - 因此除1
之外的所有其他行都未定义。
根据documentation for addRowData
:
参数的
ROWID, 数据, 位置, srcrowid
描述的
插入一个id = rowid的新行,其中包含指定位置的数据(对象)中的数据(表中的第一个,表中的最后一个或srcrowid中指定的行之前或之后)。数据对象的语法是:
{name1:value1,name2: value2…}
其中name是colModel中描述的列的名称,值是值。 此方法可以一次插入多行。在这种情况下,data参数应该是数组定义的[{name1:value1,name2: value2…}, {name1:value1,name2: value2…} ]
和第一个选项rowid应该包含数据对象的名称,该名称应该作为行的id。在这种情况下,rowid的名称不必是colModel的一部分。
因此,为了解决您的问题,当您调用addRowData
时,您可以使用每次递增的变量,也可以将rowid
设置为应该用作数据对象的名称行ID。
这有帮助吗?