分页功能和本地过滤是完美的,但我需要REMOTE过滤器,我想将filters参数发送到请求方法。
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);
答案 0 :(得分:1)
看起来可以使用loadConfig对象自定义 BasePagingLoader 。 loadConfig应该是ModelData类型的Object,更具体地说是PagingLoadConfig。 使用
创建一个新的loadConfigfinal 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属性。 (有关如何使用loadConfig构建请求的参考,请参阅HttpProxy#generateUrl方法)。然后你必须在服务器端相应地处理请求。 我假设您使用的是GXT 2.2.x,老实说我没有编译它,希望它能正常工作。