2011-04-06 64 views
3

我一直在這個問題上停留了兩天。做了很多谷歌搜索,但無法找到確切的答案。JQGrid filterToolbar

以下是jqGrid的定義

$("#tblresults").jqGrid({ 
      datastr: data, 
      datatype: 'jsonstring', 
      height: 230, 
      colNames: colNames, 
      colModel: colModel, 
      rowNum: -1, 
      viewrecords: true, 
      loadComplete: function() { 
       ChangeSize('#tblresults', 70); 
      } 
     }); 

這是過濾器定義

$("#tblresults").filterToolbar({ searchOnEnter: true, stringResult: true, defaultSearch: "cn", groupOp: "AND" }); 

我從一個簡單的getJSON調用獲取數據。但是,當我嘗試使用過濾器沒有任何工作。 我調試了一段代碼,發現jqgrid在內部調用reloadgrid,這會使數據消失。

任何人都可以告訴我,我們如何在客戶端完全過濾jqgrid。 我正在使用v3.8,並且我瞭解到jqgrid v3.7的這個客戶端過濾邏輯就位。

由於提前

回答

3

你有數據所有你不應該使用-1作爲rowNum值的第一位。而不是像rowNum:1000那樣使用任何可靠的值。更好的辦法是使用本地數據分頁。在這種情況下,您應該設置例如rowNum:10, rowList:[5,10,20,100]

如果你輸入參數的jqGrid的colNamescolModeldata參數每AJAX服務器調用你還應該考慮使用data參數而不是datastr。如果datatype應該從'jsonstring'更改爲'local'

其他一些常見參數,如gridview:trueheight:'100%'對您也可能有用。第一個(gridview:true)只是改善性能沒有任何缺點,第二個(height:'100%')將遵循選擇沒有垂直滾動條的最佳網格高度。它可以很好地結合本地數據分頁(參數如rowNum:10, rowList:[5,10,20,100])。

+0

我在某處讀到rowNum = -1將顯示網格中的所有記錄,這是我的要求。在任何情況下,記錄數不會超過200,所以垂直滾動條很好。我會嘗試更改數據類型和數據參數,看看它是否工作。但現在我已經使用了過濾服務器上記錄的舊方法。 – Nilesh 2011-04-06 12:36:37

+0

@Nilesh:如果將值發送到服務器,值'rowNum = -1'可能會正常。該值在jqGrid(<3.7)版本中使用舊,關於值200作爲行數。在用戶滾動窗口之前真的需要填充瀏覽器窗口的一部分嗎?如果您將使用'rowNum:10'而不是'rowNum:200',網格將快速準備20次。用戶是否可以閱讀和**分析200行網格?可能的排序和過濾(參見[工具欄過濾](http://www.trirand.com/jqgridwiki/doku.php?id=wiki:toolbar_searching))對用戶來說會更好,並且可以使用分頁。 – Oleg 2011-04-06 14:58:00

0

添加這些參數和您的工具欄搜索應該工作。使用jqgrid啓動時,我也面臨類似的問題。

search:true, 
loadonce:true,