jqGrid的。 从键值中找到rowId

我有一个基本的jqgrid实现。

$('.fsJqGrid').jqGrid({ datatype: "local", height: 175, colNames: ['FeatureId', 'Name', ''], colModel: [ { name: 'FeatureId', index: 'FeatureId', width: 75, align: 'left', sorttype: "int", hidden: true, key: true }, { name: 'Name', index: 'Name', width: 180 }, { name: 'tools', index: 'tools', width: 150} ] }); function FeatGridAddRow(jqTableName, feature) { ///Adds a row of data to a Feature JQGrid var RowId = $("#" + jqTableName).jqGrid('getGridParam', 'reccount'); feature.tools = 'MyToolHtml'; $("#" + jqTableName).jqGrid('addRowData', RowId, feature); //jqgrid } //function function FeatGridUpdateRow(featureId, newName) { ///Updates JQGrid data row //I need to find the rowId, based on the featureId parameter var rowId = 0; //update grid with new data $("#tabFS0").jqGrid('setRowData' , rowId , {Name: newName}); } //function 

我希望能够更新一行数据,但需要知道rowId才能这样做。

我拥有的唯一数据是键值(featureId)。

所以我正在寻找一种基于我知道的主键值找到rowId的方法。

我一直在看jqgrid文档,我没有看到这样做的明显方法。


更新:答案是使用我的表PK作为rowId。

所以,在add函数中;

 var RowId = $("#" + jqTableName).jqGrid('getGridParam', 'reccount'); $("#" + jqTableName).jqGrid('addRowData', RowId, feature); 

 $("#" + jqTableName).jqGrid('addRowData', feature.FeatureId, feature); 

因为您使用key:true定义了FeatureId ,所以每行的id将与FeatureId列中的值相同。 如果你t need it you should remove key:true`设置。

您没有发布您使用的完整代码示例,因此我认为您在代码的位置存在问题,您需要在jqGrid中填充数据。 我没有记录你的情景。 从哪里收到要填写网格的数据? 你一次只收到一行吗? 您是从服务器,本地数据源还是用户输入获取日期的? 填充行的最有效方法是使用jqGrid的data参数(请参阅此答案 )。 此外,jqGrid具有丰富的可能性来填充每个ajax请求的网格。

为了能够回答有关编辑数据的主要问题,您应该描述上下文。 您是否需要用户能够修改数据? 然后,您可以使用内联编辑,表单编辑或单元格编辑(请参阅文档和“行编辑”/“输入类型”和“实时数据操作”/“导航器”, 在官方jqGrid演示的导航器中选择行和单击编辑按钮)。 如果要修改不是由用户更改的行,可以使用setRowData等函数 。

因此,如果您解释更多应用程序的function以及如何使用jqGrid,我可以为您编写更多参考资料。