free-jqgrid:getLocalRow在free中返回false -jqgrid4.13.6

问题描述:

enter image description here我们在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(); 
         } 
        }, 

enter image description here

+0

对不起,但你发布的代码是绝对错误的。如果'key'是rowid,那么'key + 1'不是。它做什么外壳?您是否需要获取**所选行的数据或网格的所有本地数据?为什么你不指定rowid?您使用哪些数据和哪个网格?顺便说一下,我在你之前的问题中回答了你的建议,在'customerId'列中设置'key:true'属性,通知jqGrid使用'customerId'列中的值作为rowid。 **你的代码仍然错误,你应该解释,应该怎么做。** – Oleg

+0

我建议你阅读[文章](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

+0

@Oleg:在jqgrid 4.3中,'key'总是给我0,但行的id从'1'开始。这就是我为什么要做“key + 1”的原因,现在到第二个问题,我不能让客户id为key = true,因为我可以在网格中拥有多个相同id的客户。通过每一行(选择和非选择)并获取数据,然后我可以将这些数据的逻辑应用于JavaScript,然后发送到后端。现在我想知道为什么它创建行的id为'jqg – SKumar

你可以使用

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/与从服务器一次加载的数据完成相同。