Попытка загрузить данные с сервера на основе многопользовательского поиска / фильтров, но выполнить сортировку и разбиение на страницы на клиенте.Я нашел несколько сообщений, в которых говорится, что просто установить тип данных обратно к исходному значению в методе beforeSearch
.
Я попытался это, и он действительно выполняется на сервере и возвращает правильные данные.Тем не менее, во второй раз, когда я фильтрую, кажется, что данные поступают с сервера, но затем они стираются в строке 4429 в коде jqgrid, показанном ниже.Любая идея о том, как достичь этой цели?
Ln 4429: p.lastSelectedData = query.select ();
определение сетки:
$element
.jqGrid({
cmTemplate: { search: true, searchoptions: { attr: { placeholder: "filter..." }, clearSearch: true }, sortable: true, align: "center" },
colModel: [
{ name: "Id", key: true, hidden: true, searchoptions: { searchhidden: true, sopt: ["eq"] } },
{ name: "TransmissionId", label: "Transmission Id", searchoptions: { sopt: ["eq"] } },
{ name: "Name", label: "Name", searchoptions: { sopt: ["cn"] } }
],
datatype: "json",
loadonce: true,
height: "auto",
ignoreCase: true,
pager: $("#" + pagerId),
pgbuttons: true,
pginput: false,
rowList: [10, 25, 50],
rowNum: 10,
toppager: true,
url: "url here",
loadComplete: function (data) {
if (this.p.datatype === "json") {
setTimeout(function () {
$element.trigger("reloadGrid", [{ page: 1 }]);
}, 50);
}
return data;
},
viewrecords: true
})
.jqGrid("filterToolbar", {
autosearch: true,
defaultSearch: "cn",
beforeSearch: function () {
$element.setGridParam({ datatype: "json", page: 1 });
}
})
.jqGrid("navGrid", "#" + pagerId, {
edit: false,
add: false,
del: false,
refresh: false,
view: false,
cloneToTop: true
});
Я обрезал сетку, чтобы убедиться, что это не пользовательская логика, которая вызывает эту проблему.сетка имеет multipleSearch
вкл.но не определено выше.