2012-01-12 160 views
2

我正面臨ListGrid過濾器問題。我面臨的問題是,當我在ListGrid上應用任何過濾器來編輯任何編輯記錄的ListGridRecord時,只要我從listgrid的過濾器中刪除過濾的文本就會被刪除。Smartgwt Listgrid過濾器問題

當我嘗試手動去除過濾器以及自動使用listgrid.clearCriteria後能得到從listgrid記錄()。然後,我的所有更改都被刪除。 希望我能夠理解。這是我一直在面對的時間。如果你需要了解更多細節,請告訴我。由於提前

回答

2

我發現瞭解決這個問題。實際上,當我從listgrid中刪除過濾的文本時,listgrid默認嘗試從服務器獲取數據。通過設置屬性setDataFetchMode(FetchMode.LOCAL)防止listgrid從服務器獲取數據當u除去的濾渣中的文本。感謝所有向我提供幫助的人。

1

關於消失,看到SmartGWT的常見問題解答這個問題記錄:

http://forums.smartclient.com/showthread.php?t=8159#aGrid

在clearCriteria()和變化去的時候,你如何讓這些變化目前尚不清楚,但如果更改未正確應用,則更改可能會消失,而clearCriteria()僅從服務器加載新記錄。見網格編輯概述瞭解如何記錄和他們的編輯(「編輯值」)存儲:

http://www.smartclient.com/smartgwtee/javadoc/com/smartgwt/client/docs/Editing.html

+0

喜@Charles ......有一兩件事我想提一提你的是,當我申請過濾器在第一次那麼只有所有的變化離開。否則,第二次連續使用過濾器。變化沒有消失。請告訴我問題或給我一些提示。謝謝 – ankit 2012-01-13 09:44:08

0

SmartGWT的6,我看到了這樣做的更好的方法,您可以參閱展示

如果您正在使用SmartGWT的3或4,你可以嘗試以下 Grid.java:

this.addFilterEditorSubmitHandler(new FilterEditorSubmitHandler(){ 

     @Override 
     public void onFilterEditorSubmit(FilterEditorSubmitEvent event) { 
      filterByEditor(event.getCriteria()); 

      //cancel the event to avoid the server side fetch 
      event.cancel(); 
     } 

    }); 

數據源的.java

後獲取數據,調用設置初始的記錄集。 zzzzzDataSrc.setCacheData(gridRecs);


公共無效filterByEditor(標準CR){

AdvancedCriteria criteria =  
      new AdvancedCriteria(FLD_NM, OperatorId.STARTS_WITH, cr.getAttributeAsString(FLD_NM)) ; 
    //initialize with the complete set of rows 
    this.setData(this.getDataSource().getCacheData()); 
    //filter using the criteria 
    this.setData(this.getDataAsRecordList().findAll(criteria)); 

}