2017-04-04 16 views
0

はJSグリッドのための私のJSPコードダイナミックにデータがJsグリッドからフェッチされますが、フィルタリングは機能していませんか?ここ

$(function() { 

     $.ajax({ 
      type : "GET", 
      url : "/Final/Reports?value=2016-03-03&value2=2017-03-03" 
     }).done(function() { 

      $("#jsGrid").jsGrid({ 
       height : "auto", 
       width : "100%",   
       filtering: true, 
        sorting : true, 
       paging : true, 
       autoload : true, 
       pageSize : 3, 
       controller : { 
        loadData : function(filter) { 
         return $.ajax({ 
          type : "GET", 
          url : "/Final/Reports?value=2016-03-03&value2=2017-03-03", 
          data : filter 
         }); 
        }, 
       }, 
       fields : [ { 
        name : "patientId", 
        type : "text", 
        width : 150 
       }, { 
        name : "patientName", 
        type : "text", 
        width : 150 
       }, { 
        name : "genderId", 
        type : "number", 
        width : 150 
       }, { 
        name : "mobile", 
        type : "number", 
        width : 150 
       }, { 
        type : "control" 
       } ] 
      }); 

     }); 
    }); 

は、私はJSグリッドに新しいですし、私はservletを使用してデータをフェッチし、それがグリッドに表示されています。しかし、私はどのようにデータをフィルタリングするのか分からない。

アイデア?

答えて

0

クライアント側のフィルタリングとサーバー側のフィルタリングは、完全に開発者の の肩にあります。コントローラのloadData の方法で実装されたクライアント側フィルタリング。サーバ側は明らかにフィルタリングパラメータを受け取り、 データをフェッチしてクライアントに渡すサーバ スクリプトで実装されています。

これは、クライアントサイドと のサーバーサイドフィルタリングを同時に使用できる理由です。

loadData: function(filter) { 
    var d = $.Deferred(); 

    // server-side filtering 
    $.ajax({ 
     type: "GET", 
     url: "/items", 
     data: filter, 
     dataType: "json" 
    }).done(function(result) { 
     // client-side filtering 
     result = $.grep(result, function(item) { 
      return item.SomeField === filter.SomeField; 
     }); 

     d.resolve(result); 
    }) 

    return d.promise(); 
} 

ソースの問題を:ここにあなたの controller.loadData方法は、この場合のように見えることができるかであるhttps://github.com/tabalinas/jsgrid/issues/32

+0

uは、我々はクライアント側のフィルタリングを実装@tabalin感謝。 –

関連する問題