2015-01-08 59 views
1

當我嘗試拉動我的網格列表存儲的所有值時,不是給我存儲商店中的所有數據,而只是向我提供數據用戶的當前視圖。Sencha GXT Grid部件ListStore.getAll()僅返回部分數據

例子:

我有一個網格,看起來像這樣

1:蘋果

2:男孩

3:狗

4:果汁

5:幻燈片

6:JAVA

7:蟒

8:PHP

9:鍵盤

10:耙

然而,在實時網格看時,當前窗口中只有5個可用,而其餘10個被「隱藏」。這意味着用戶需要使用網格控件的滾動條來查看其餘的數據。我的問題是,如何確保我與整個列表商店進行交互,而不僅僅是部分?

+0

看看'ListStore.size()'是否返回正確的計數。也嘗試調用'ListStore.findModelWithKey(String)'來查看是否發現隱藏的記錄。否則,如果需要同時訪問所有數據,則必須禁用網格分頁 - 我相信啓用分頁時,GXT網格不會保留隱藏的行加載。 – gknicker

+0

ListStore.size()返回不正確的計數。我將如何禁用分頁? – sudobangbang

+0

我知道有一個常規的'ListLoader'而不是'PagingLoader'(用於Grid.setLoader(ListLoader))。如果這沒有幫助,也許發佈你的代碼來創建和配置網格。您還可以查看[Sencha Javadoc](http://docs.sencha.com/gxt/3.1/javadoc/index.html)瞭解用於配置網格的非分頁版本的類。 – gknicker

回答

0

如果手動更改網格數據,請確保您調用listStore對象的更新方法,下面是一些示例代碼:

List<Event> listData = listStore.getAll(); 
for (Event event : listData) { 
    event.setText(event.getText()+" altered!"); 
    listStore.update(event); 
} 

還有一個可能性,你正在使用內嵌編輯網格,如果改變網格數據,請確保您調用從列表商店提交更改的方法,這裏是例子:

listStore.commitChanges(); 

我希望這可以幫助您。否則,請發佈您的代碼,以便我更好地理解您的問題。

+0

基本上我正在改變網格數據,因爲你可能已經懷疑從我以前的問題和加載網格。對於初始修改,我很好,但只要用戶向上或向下滾動,數據就會更改回原始數據,而不是修改後的數據。 – sudobangbang

+0

如何更改網格數據?從我的經驗來看,起初我是用錯誤的方式來做的,就像我從我的listStore中獲取數據對象,然後改變它。改變網格數據的關鍵是在你的代碼的末尾調用更新方法,你有沒有調用它? –