2016-11-27 13 views
0

JavaScriptについては、初心者です。私はブラウザにグリッドを表示するためにjsGridプラグインを使用しています。グリッド列見出しの値は「要求ステータス」と「要求ID」になります。私は静的なデータで動作させることができます。jsGridプラグイン - リモートデータでフィルターする方法

(function() { 
    var adminDashboardController = { 
     loadData: function(filter) { 
      return $.grep(this.requests, function(request) { 
       return (!filter.Status || request.Status === filter.Status) 
       && (!filter.RequestId || request.RequestId.indexOf(filter.RequestId) > -1) 
      }); 
     }, 

     insertItem: function(insertingReq) { 
     }, 

     updateItem: function(updatingReq) { 
     }, 

     deleteItem: function(deletingReq) { 
     } 
    }; 

    window.adminDashboardController = adminDashboardController; 

    adminDashboardController.status = [ 
     { Name: ""}, 
     { Name: "Requested"}, 
     { Name: "Declined"} 
    ]; 

    //This is the static data 
    adminDashboardController.requests = [ 
     { "Status": "Requested", "RequestId": "1"}, 
     { "Status": "Declined", "RequestId": "2"} 
    ]; 
}()); 

しかし、それは(データソースとしてテストのためのJSONファイルを使用して)AJAX呼び出しからデータをフェッチすることになると、データはもはや私が選択したときにフィルター「要求」または「拒否」を取得しますフィルタリング基準。私はこのようなドキュメントに記載された形式を使用しています -

(function() { 
    var adminDashboardController = { 
     loadData: function (filter) { 
      return $.ajax({ 
       type: "GET", 
       dataType: "json", 
       url: "/json/db514.json", 
       data: filter 
      }); 
     }, 
     insertItem: function(insertingReq) { 
     }, 

     updateItem: function(updatingReq) { 
     }, 

     deleteItem: function(deletingReq) { 
     } 
    }; 

    adminDashboardController.status = [ 
     { Name: ""}, 
     { Name: "Requested"}, 
     { Name: "Declined"} 
    ]; 
}()); 

この場合、フィルタリングの実装方法はわかりません!

答えて

0

理由は、フィルタリングをコードに実装する必要があるからです。

一般的には行うことができます。

  1. クライアント上(ちょうどあなたの最初のサンプルのように)バックエンドで
  2. を、あなたはフィルタリングを行いますされ、エンドポイントにフィルタを渡す必要がありますし、データを返す。あなたは、JSONやフィルタデータをロードする、バックエンドにエンドポイントを追加するか、まだクライアント側でフィルタリングを行うことができますいずれか
  3. あなたのケースで組み合わせるアプローチ(部分的にバックエンドで、クライアント上の後)

たとえば、

この問題をGtiHub https://github.com/tabalinas/jsgrid/issues/32で確認してください。

関連する問題