2012-09-03 65 views
1

尋呼功能,和一個本地過濾是完美的,但我需要REMOTE過濾器,我想發送過濾器參數到請求方法。如何在Ext GWT的RequestBuilder中發送網格過濾參數?

Thx!

我有這樣的代碼:

String path = GWT.getHostPageBaseURL() + (Examples.isExplorer() ? "" : "../../") + "backend/index.php?action=getLines"; 

RequestBuilder builder = new RequestBuilder(RequestBuilder.GET, path); 
HttpProxy<String> proxy = new HttpProxy<String>(builder); 

JsonPagingLoadResultReader<PagingLoadResult<ModelData>> reader = new JsonPagingLoadResultReader<PagingLoadResult<ModelData>>(type); 

final PagingLoader<PagingLoadResult<ModelData>> loader = new BasePagingLoader<PagingLoadResult<ModelData>>(proxy, 
    reader); 

[...] 


NumericFilter sorszamFilter = new NumericFilter("Sorszam"); 

StringFilter nevFilter = new StringFilter("Nev"); 

DateFilter datumFilter = new DateFilter("Datum"); 
NumericFilter szamFilter = new NumericFilter("Szam"); 

GridFilters filters = new GridFilters(); 
filters.setLocal(true); 
filters.addFilter(sorszamFilter); 
filters.addFilter(nevFilter); 
filters.addFilter(datumFilter); 
filters.addFilter(szamFilter); 

//example 
sorszamFilter.addListener(Events.Update, new Listener<FilterEvent>() { 
    @Override 
    public void handleEvent(FilterEvent be) { 
     ??? 
    } 

}); 

[...] 

final PagingToolBar toolBar = new PagingToolBar(10); 
toolBar.bind(loader); 

loader.load(0, 10); 

回答

1

它看起來像BasePagingLoader可以得到使用loadConfig對象進行定製。 loadConfig應該是ModelData類型的對象,更具體地說是PagingLoadConfig。 創建一個新的loadConfig使用

final ModelData loadConfig = (ModelData) ((BasePagingLoader).loader).newLoadConfig(); 

方法。 然後強制加載器使用此loadConfig:

((BasePagingLoader).loader).useLoadConfig(loadConfig); 

loadConfig應該是ModelData的可變實例。這就是爲什麼你可以使用

loadConfig.set("selectedFilter", "what_ever_you_like_here") 
loadConfig.set("direction", "ASC"); 

這應該到位的問題來完成,標誌着你把增加新的屬性,並應強制HTTPPROXY添加任何你設置爲loadConfig屬性。 (請參閱HttpProxy#generateUrl方法以參考關於如何藉助loadConfig構建請求的方法)。然後你必須在服務器端相應地處理請求。 我假設你使用GXT 2.2.x,老實說我沒有編譯它,希望它能正常工作。