jqGrid getRowData返回错误的结果

时间:2012-06-20 06:24:59

标签: jquery jquery-ui jqgrid

我有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 .. !!

1 个答案:

答案 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。

这有帮助吗?