free-jqgrid:getLocalRow在free中返回false -jqgrid4.13.6
问题描述:
我们在jqgrid 4.3中使用了下面的代码。现在我升级到4.13.6。下面的代码在4.3中工作,但在4.13,它返回false ...任何帮助,请...free-jqgrid:getLocalRow在free中返回false -jqgrid4.13.6
var grid = $("#myGrid").jqGrid('getRowData');
$.each(grid, function(key, value) {
selectedRow = key+1;
var rowData = $("#myGrid").jqGrid('getLocalRow', selectedRow);
});
我没有使用任何ID却使我的网格。数据类型:json,rownumbers: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();
}
},
答
你可以使用
var localData = $("#myGrid").jqGrid("getGridParam", "data");
将所有本地数据作为数组获取。它是参考到jqGrid的内部数据。
更新:如果电网是排序或筛选本地,并希望得到在同一顺序的所有行的数据,那么你应该得到lastSelectedData
参数,而不是data
。您可以在从服务器加载后,通过使用forceClientSorting: true
jqGrid的参数以及loadonce: true
强制对本地数据进行排序。
演示https://jsfiddle.net/OlegKi/akv51mdq/演示lastSelectedData
在没有id信息的本地数据的情况下。另一个演示https://jsfiddle.net/OlegKi/Ljejoh21/与从服务器一次加载的数据完成相同。
对不起,但你发布的代码是绝对错误的。如果'key'是rowid,那么'key + 1'不是。它做什么外壳?您是否需要获取**所选行的数据或网格的所有本地数据?为什么你不指定rowid?您使用哪些数据和哪个网格?顺便说一下,我在你之前的问题中回答了你的建议,在'customerId'列中设置'key:true'属性,通知jqGrid使用'customerId'列中的值作为rowid。 **你的代码仍然错误,你应该解释,应该怎么做。** – Oleg
我建议你阅读[文章](https://free-jqgrid.github.io/getting-started/index.html#the_first_grid ),我在那里解释什么是rowid。看到[图片](https://free-jqgrid.github.io/getting-started/index.html#grid-internal-div)和下面的解释。 – Oleg
@Oleg:在jqgrid 4.3中,'key'总是给我0,但行的id从'1'开始。这就是我为什么要做“key + 1”的原因,现在到第二个问题,我不能让客户id为key = true,因为我可以在网格中拥有多个相同id的客户。通过每一行(选择和非选择)并获取数据,然后我可以将这些数据的逻辑应用于JavaScript,然后发送到后端。现在我想知道为什么它创建行的id为'jqg – SKumar