2012-05-07 145 views
0

我有一個ListGrid,並將過濾器編輯器設置爲可見。 通常,如果我在過濾器編輯器中鍵入數據,它會導致從服務器獲取數據,並調用我的executeFetch(..)方法。在Listgrid的過濾器編輯器中編輯數據不會導致fetchData

但是在某些情況下,編輯過濾器的數據後不會調用此方法。 例如,如果我輸入「」它讓我在ListGrid. 然後,我將光標移動到第一個位置,鍵入「一個」,讓所有的一切我都過濾字符串「一個字」一些數據。在這種情況下,不會執行提取,並且不再顯示「舊」數據的更多內容。 也許我需要禁用一些緩存resultSet/Criteria?

這裏是我的ListGrid聲明:

ListGrid grid = new ListGrid(); 
grid.setCanEdit(false); 
grid.setShowFilterEditor(true); 
grid.setDataSource(getSource()); 
grid.setDataPageSize(DATA_PAGE_SIZE); 
grid.setFields(gridFields); 

回答

2

難道你不覺得不合邏輯重新獲取一個比較內斂的標準? 我將解釋:

SmartGWT使用數據緩存來優化客戶端 - 服務器連接並減少網絡流量。 在您的例子,假設你已經在數據庫中執行以下操作:

  • 一個字
  • 兩個字
  • 一句話

當你鍵入word,抓取回報:

  • 一個字
  • 兩個字

這些值被緩存在客戶端。

當您添加oneword,因爲這個SS更限制搜索條件,無需服務器獲取,只有客戶端過濾,其結果是:

  • 一個字
+0

緩存的工作原理默認,不是嗎? –

+0

正如我記得我的解決方案與'response.setTotalRows(..);'連接。 但無論如何,我非常感謝你的幫助。 –

+0

是的,據我所知 –