2010-01-07 90 views
5

有沒有一種方法來過濾編程的(在Javascript中,而不是服務器端)在jqGrid中顯示的數據?所有的搜索示例似乎都依賴於使用jqGrid自己的搜索用戶界面,這對我不起作用。例如,我希望能夠基於頁面上其他地方的用戶操作進行過濾。在客戶端以編程方式過濾jqGrid?

我想象類似

jQuery("#grid_id").filter('CategoryID', selectedCategoryID); 

其中類別ID是在網格的列和selectedCategoryID包含,例如,由用戶在選擇元件選擇的值。

回答

1

您可以傳遞JSON作爲數據並使用setGridParam方法重新加載數據!

我從來沒有試過這個,不知道如何讓jqgrid使用您的客戶端數據而不是點擊URL!

你有沒有運氣?

5

如果你想第一預濾器您的數據:

$('#myGrid').setGridParam({ data: filtereddataarray }).trigger("reloadGrid"); 

其中filtereddataarray只包含要顯示該視圖

如果您希望以編程方式構建你的過濾器記錄(我用這個方法,主要是):

var filters = { "groupOp": "AND", "rules": [{ "field": "id", "op": "eq", "data": "9" }, { "field": "amount", "op": "ge", "data": "10" }, { "field": "name", "op": "cn", "data": "do i"}] }; 

//To filter: 
jqGridFilter(filters , $('#myGrid')); 

//To reset: 
jqGridFilter(null, $('#myGrid')); 

    function jqGridFilter(filtersparam, grid) { 
     grid.setGridParam({ 
      postData: { 
       filters: filtersparam 
      }, 
      search: true 
     }); 
     grid.trigger("reloadGrid"); 
    } 
相關問題