Как я могу отправить параметры Grid Filter в свой RequestBuilder в Ext GWT?

63
6

Функция поискового вызова и локальная фильтрация идеальны, но мне нужен фильтр REMOTE, и я хочу отправить параметр filter в метод запроса.

Спасибо!

У меня есть этот код:

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

спросил(а) 2021-01-28T01:22:12+03:00 4 месяца, 3 недели назад
1
Решение
63

Похоже, что 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, и, честно говоря, я его не компилировал, надеюсь, что все будет хорошо.

ответил(а) 2021-01-28T01:22:12+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема