jqGrid本地筛选导致rowid设置为null

jqGrid本地筛选导致rowid设置为null,jqgrid,Jqgrid,基于该解决方案,我在本地实现了过滤 但是,我无法将第一行设置为所选。看起来行ID已设置为空。我不知道为什么会发生这种情况 代码如下 $("#showMatchingRecords").click(function(e) { e.preventDefault(); var grid = $("#WorkList"), filter,searchfiler; searchfiler = "700677"; gri

基于该解决方案,我在本地实现了过滤

但是,我无法将第一行设置为所选。看起来行ID已设置为空。我不知道为什么会发生这种情况

代码如下

$("#showMatchingRecords").click(function(e) {             
    e.preventDefault();               
    var grid = $("#WorkList"), filter,searchfiler;
    searchfiler = "700677";
    grid[0].p.search = true;
    filter = { groupOp:'OR', rules: [] };
    filter.rules.push({field:"Id",op:"eq",data:searchfiler});
    $.extend(grid[0].p.postData, {filters:JSON.stringify(filter)});
    grid.trigger("reloadGrid", [{page:1}]);
   });

$("#showAllRecords").click(function(e) {
     e.preventDefault();
    var grid = $("#WorkList");
    grid[0].p.search = false;
    $.extend(grid[0].p.postData, { filters: "" });
    grid.trigger("reloadGrid", [{page:1}]);            
});
这是我的gridComplete方法,我也用loadComplete尝试过同样的方法

       gridComplete : function() {
            $("tr.jqgrow:odd").css("background", "#DDDDDC");
            var grid = $("#WorkList");

            var ids = grid.getDataIDs();

            console.log('before ids....', ids);

            for (var i = 0; i < ids.length; i++) {
                grid.setRowData(ids[i], false, { height: 35 });
            }

要在每次重新加载网格时选择第一行,需要执行以下操作

loadComplete:函数{ var$self=$this; 如果this.rows.length>1{//测试网格是否为空 $self.jqGridsetSelection,this.rows[1].id; } } 我严格建议您另外在网格中包含gridview:true选项see以获取详细信息,并将gridComplete替换为rowattr see的用法

    caption: 'Records List',
    width: 1000,
    height: 200,
    pager: $("#WorkListPager"),
    rowNum: 50,
    sortname: 'Name',
    loadonce: true,
    sortorder: "asc",
    cellEdit: false,
    viewrecords: true,
    imgpath: '/Content/Themes/Redmond/Images',
    autowidth: false,
    onSelectRow: function (rowid, status, e) {
     /* function */
        }