Я вижу два разных поведения и не знаю почему. Части вопроса являются результатом тестирования решений, реализованных от других Q & А.jqGrid Применение фильтров postdata в сетке создает поведение ODD
Сокращенная Сетка создания (я включал только свойства, имеющие отношение к вопросу) ...
сетки Setup1
url: jqDataUrl,
datatype: "json",
mtype: "GET",
//loadonce: true
// Default sorting
sortname: typeof prefs.sortCol !== "undefined" ? prefs.sortCol : "LastName",
sortorder: typeof prefs.sortCol !== "undefined" ? prefs.sortOrd : "asc",
sorttype: "text",
sortable: true,
postData: { filters: JSON.stringify({ "groupOp": "AND", "rules": [{ "field": "FirstName", "op": "cn", "data": "max" }]})},
search: true,
Результаты 1 с поиском: true
Когда первая сетка сначала загружается, она загружается с фильтрованными результатами из фильтры postdata. Если я перейду к редактированию URL-результирующей строки и вернусь, запись в сетке не будет обновлена, даже если вышеперечисленная страница/сетка перезагружается с нуля с сервера.
установка сетки 2
//same as above but
search: false
Результаты 2 с поиском: ложные
При загрузке сетки в этот раз, фильтр не применяется. Если я перейду к редактированию url строки и вернусь, запись будет обновлена.
Я прочитал много сообщений о настройке loadonce: верно, и изменения типа данных от локального до и JSON JSON местных для освежающего, но то, что я хочу, чтобы сетка всегда загружать, сортировать и фильтровать из данных сервера.
Хотя я понимаю, что бесплатный jqGrid делает все лучше, к сожалению, я не могу заменить текущий файл jqGrid.js.
Мой вопрос две части:
1) Я не вижу, искать в качестве опции на вики here так где она определена.
2) Могут ли и как получить фильтры postdata для применения при загрузке И мои записи обновлены в сетке после редактирования?
Итак, вы используете 'loadonce: true' в первом сценарии или нет?Вы хотите применить фильтрацию ** локально ** или ** на сервере **? Какой 'editurl' вы используете' 'clientArray'' или некоторый URL-адрес сервера? Какой режим редактирования вы используете? Вы написали «Я не могу заменить текущий файл jqGrid.js», но вы не написали **, какую версию и из какой вилки вы используете **. Важно понимать, что вы не можете просто изменить 'datatype' с json на local в любое время. Важно, чтобы вы в то время заполняли параметр data. Только если заполняется параметр data, вы можете работать с сеткой, как с локальной сеткой. – Oleg
Не использовать loadonce: true. Просто поставьте uncommented выше, чтобы его можно было увидеть не используемым. Редактирование строки отправляется на другую страницу, связанную с сервером, и сохранение/отмена на этой странице перезагружает исходную страницу сетки, поэтому я предполагаю, что при перезагрузке сетки она должна получать последние данные для сетки, но этого не делает. Я думаю, что один вопрос заключается в том, почему поиск: true применяет фильтры postdata, но не позволяет загружать сетку с новыми обновленными значениями, но вместо этого показывает старые значения, пока я не удалю кнопку обновления данных? И почему поиск: false не позволяют применять фильтры postdata? – MaxAx
@Oleg Я выяснил результаты 1 выпуск выше. С поиском: true, когда я возвращаюсь с страницы редактирования, контроллер mvc получал данные с сеанса, не запрашивая базу данных для новых данных. Условное использование сеанса или базы данных было основано на некоторой связанной переменной. Не уверен, к чему это привязано, но прокомментировал это и работает так, как ожидалось. Не выяснили поиск: ложная проблема (результаты 2 выше). В контроллере предложение where для сетки заполняется фильтром postdata, но все результаты возвращаются из запроса вместо фильтрации. Очень странно. Взгляд в больше. – MaxAx