使用远程数据和格式在jqgrid中过滤

时间:2012-11-19 18:33:40

标签: jquery jqgrid

我需要在不使用内置UI的情况下在jqgrid中本地过滤数据。我按照Oleg在帖子jqGrid Filtering Records中给出的答案。它就像一个魅力,我的设置有一些变化。但是,我似乎无法让它适用于格式化记录的字段。 jqgrid数据是远程的。

jqGrid Filtering Records发布代码示例,因为这几乎就是我所拥有的:

$("#search").click(function() {
var searchFiler = $("#filter").val(), grid = $("#list"), f;

if (searchFiler.length === 0) {
    grid[0].p.search = false;
    $.extend(grid[0].p.postData,{filters:""});
}
f = {groupOp:"OR",rules:[]};
f.rules.push({field:"name",op:"cn",data:searchFiler});
f.rules.push({field:"note",op:"cn",data:searchFiler});
grid[0].p.search = true;
$.extend(grid[0].p.postData,{filters:JSON.stringify(f)});
grid.trigger("reloadGrid",[{page:1,current:true}]);
});

在我的例子中,字段'name'的格式为jqgrid:

{name:"name", index:"name", width:250, align:'left',
  formatter: function(cellvalue, options, rowObject)
{
  return rowObject.Data[0]['userName'];
}
 },
 ...
 jsonReader : {
        repeatitems:false,
         root: 'rows',
         userdata: 'rows'
      },
loadonce: true,      
viewrecords: true,
autowidth: true,
multiselect: false,
height: 500,    
rowNum: 999,
subGrid: true,

我们对后端进行一次查询,并将数据存储在“行”中,以便在子网格中显示。

非常感谢任何指针。

感谢,

阿沙

1 个答案:

答案 0 :(得分:0)

我认为你不需要在这种情况下使用自定义格式化程序。我想你可以使用jsonmap。可能jsonmap: "Data.0.userName"确实需要你。或者,您可以使用jsonmap作为功能(例如herehere)。

一般情况下,您应始终将unformattercustom formatter一起定义。这可能是你当前问题的原因。