1

ページング機能とローカル フィルタリングは完璧ですが、REMOTE フィルターが必要で、filters パラメーターをリクエスト メソッドに送信したいです。

どうも!

私はこのコードを持っています:

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); 
4

1 に答える 1

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");

これは、付けた疑問符の代わりに行う必要があり、loadConfigプロパティに設定したものをHttpProxyに強制的に追加する必要があります。(loadConfigを使用してリクエストを作成する方法については、HttpProxy#generateUrlメソッドを参照してください)。次に、サーバー側で対応してリクエストを処理する必要があります。私はあなたがGXT2.2.xを使用していると仮定しています、そして正直に言って私はそれをコンパイルしていません、それがうまくいくことを願っています。

于 2012-09-06T15:48:55.107 に答える