2011-03-14 33 views
3

我正在使用jqgrid,使用過濾器工具欄(列)選項...總數據大約是10,000 ...所以它似乎是初始加載時的一些延遲,因爲配置設置爲loadonce:true;沒有loadonce的過濾器工具欄:true?

任何方式來實現過濾器列功能與loadonce:false? 因爲loadonce:false會導致數據加載延遲。如果我有機會使用loadonce:false添加列過濾器,這將非常完美...

回答

4

如果您擁有大約10,000行,那麼實現服務器端數據分頁,排序和過濾當然更好。如果您尚未使用參數stringResult:true,我建議您使用filterToolbar。在這種情況下,jqGrid將以相同的格式(如高級搜索do)向服務器filters發送參數。所以,你需要在服務器端實現其使用下面的輸入參數從jqGrid的方法:

  • sidxsord參數定義了數據的排序順序。該信息在相應的SELECT聲明中指定ORDER BY
  • 如果_search參數是true,那麼下一個參數filters給出了構成相應SELECT語句的WHERE部分的附加信息。
  • pagerows參數定義應返回先前排序和過濾的數據頁。

確切的實現取決於您在服務器上使用的語言和技術,當然也取決於您使用的數據庫服務器和接口。

+0

這是我的網格初始化。我已經使用了stringResult:true,但沒有工作......目前它最初加載所有10000個數據,並且所有其他操作都是基於xml格式的初始數據執行的......因此加載網格需要大量時間。我只需要直接從服務器過濾工具欄。如果我在過濾器工具欄中輸入任何內容,它應該檢查來自服務器的數據,而不是從最初加載的所有數據(如xml格式)中檢查數據。 – George

+0

@George:你應該刪除'loadonce:true'。在第一個請求中,您將有行= 20&page = 1&sidx = fireform_respondent.id&sord = asc。你的服務器應該使用ORDER BY fireform_respondent.id和LIMIT 0,20(見[這裏](http://www.trirand.com/jqgridwiki/doku.php?id=wiki:first_grid#php_and_mysql_example_file))。對於PHP更多示例,您可以從http://www.trirand.com/blog/?page_id=6加載演示文件。在search_adv.php中,您可以找到如何解碼將由「filterToolbar」發送的'filters'參數以及如何在'SELECT'的WHERE部分中使用它以僅獲取過濾的數據。 – Oleg

+0

如果我刪除loadonce:true,那麼過濾器工具欄將不起作用,這意味着它不會根據關鍵字對數據進行排序......但是如果我們使用loadonce:true,它會對數據進行排序,而我們在工具欄搜索字段...我的目標是找到一個解決方案......這意味着當我在工具欄搜索字段上鍵入任何內容時,它應該直接發送請求到服務器並從數據庫中查找數據。 – George