0

組み込みのUIを使用せずに、jqgridでローカルにデータをフィルタリングする必要があります。私は、投稿jqGridFilteringRecordsでOlegによって与えられた答えに従いました。それは私のセットアップにいくつかの変更を加えた魅力のように機能しました。ただし、レコードがフォーマットされているフィールドでは機能しないようです。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,

バックエンドに対して一度クエリを実行し、サブグリッドに表示するためにデータを「行」に格納します。

どんなポインタでも大歓迎です。

ありがとう、

アシャ

4

1 に答える 1

0

この場合、カスタムフォーマッタを使用する必要はないと思います。使用できると思いますjsonmap。おそらくjsonmap: "Data.0.userName"あなたが必要とすることを望んでいるでしょう。jsonmapまたは、関数として使用することもできます(ここまたはここのように)。

一般に、 unformatterは常にカスタムformatterと一緒に定義する必要があります。それはあなたの現在の問題の理由かもしれません。

于 2012-11-19T20:57:21.563 に答える