【发布时间】:2017-02-16 04:18:15
【问题描述】:
我们在 jqgrid 4.3 中使用了以下代码。现在我正在升级到 4.13.6。下面的代码在 4.3 中工作,但在 4.13 中,它返回 false...请帮助...
var grid = $("#myGrid").jqGrid('getRowData');
$.each(grid, function(key, value) {
selectedRow = key+1;
var rowData = $("#myGrid").jqGrid('getLocalRow', selectedRow);
});
我在填充网格时没有使用任何 id。数据类型:json,行号:true。
当我调试时,我看到每行的 ID 是 'jqg41'、'jqg42' 等...有时它是 'jqg61'、'jqg62' 等...这是一个随机数,附加在后面'jqg'
更多代码(但未完成的代码)
$grid.jqGrid({
datatype: 'json',
url: 'myUrl/byFileId.do?custId='+custId,
mtype: 'GET',
ajaxSubgridOptions: { async: false },
colNames:[ col1, col2 ...],
colModel:[
. . .
. . .
. . .
],
headertitles:true,
rowNum:999,
rowList:[],
pager: '',
records: 1000,
pgbuttons : false,
viewrecords : false,
pgtext : null,
pginput : false,
gridview:true,
ignoreCase:true,
rownumbers:true,
sortname: 'invdate',
viewrecords: true,
sortorder: 'desc',
multiselect: true,
caption: "Customer Search Result",
height: '100%',
editurl: 'clientArray',
autoencode: true,
loadonce: true,
multiselectWidth: 30,
width: rmtPageTitleWidth,
viewsortcols : [true,'vertical',true],
onSortCol: function (index, idxcol, sortorder) {
rowIdAndNoOfRowPair = [];
if (this.p.lastsort >= 0 && this.p.lastsort !== idxcol
&& this.p.colModel[this.p.lastsort].sortable !== false) {
$(this.grid.headers[this.p.lastsort].el).find(">div.ui-jqgrid-sortable>span.s-ico").show();
}
},
【问题讨论】:
-
抱歉,您发布的代码绝对错误。如果
key是rowid,那么key+1不是。它是做什么壳的?您需要获取选中行的数据还是网格的所有本地数据?为什么不指定rowid?您使用哪些数据和哪个网格?顺便说一句,我开始回答你之前的问题,建议在customerId列中设置key: true属性,这会通知jqGrid 使用customerId列中的值作为rowids。 您的代码仍然错误,您应该解释一下,该怎么办。 -
我推荐你阅读the article,我在这里解释了什么是rowid。请参阅the picture 和下面的说明。
-
@Oleg:在 jqgrid 4.3 中,'key' 总是给我 0,但行的 id 从 '1' 开始。这就是为什么我做了“key+1”。现在到你的第二个问题,我不能将客户 ID 设为 key=true,因为我可以在网格中有多个相同 ID 的客户。我想要什么:我想去通过每一行(选择和未选择)并获取数据,然后我可以在javascript中对这些数据应用逻辑,然后发送到后端。现在我想知道为什么它将行的ID创建为'jqg
-
我再说一遍,你解释的是自动生成rowids 如果输入数据错误并且不包含id信息。您永远不应该对自动生成的 id 的算法有任何假设。我还是没看懂你的描述。你永远不应该发布这么小的代码片段。我只能猜测您的意思是像您之前的问题中那样带有
datatype: "json"和loadonce: true的网格。您不需要“遍历每一行”。您可以使用$("#myGrid").jqGrid("getGridParam", "data")来获取对所有本地数据的引用。
标签: jquery jqgrid free-jqgrid