У меня есть несколько строк я прячу так:Сортировка отображения столбца скрытых строк в jqGrid
$("#"+rowid).hide();
Моя проблема заключается в том, что, когда пользователь нажимает кнопку для сортировки colmun, скрытые строки вновь. Есть ли способ избежать этого?
EDIT
Я попытаюсь объяснить немного больше того, что я сделал с примером кода. Я начинаю создавать свою сетку с этими параметрами (и без данных).
var params = {
datatype: "local",
data: [],
caption: "Grid",
colNames:[ "Column A", "Column B" ],
colModel:[
{ name:"colA", key: true },
{ name:"colB" }
]
};
По некоторым причинам, я перезагружать рядом сетки с DATAS, как это:
$("#myGrid").jqGrid("clearGridData")
.jqGrid("setGridParam", { data: myDatas })
.trigger("reloadGrid");
И я флажков со слушателями, как этот:
$("#checkbox1").on("change", onCheckbox1Changed);
function onCheckbox1Changed() {
var rowid = ...;
var datas = $("#myGrid").jqGrid("getRowData");
for(var key in datas) {
if(datas[keys].colB === "" && $("#checkbox1").val() === true) {
$("#"+rowid).show();
} else if(datas[keys].colB === "" && $("#checkbox1").val() === false) {
$("#"+rowid).hide();
}
}
}
Этот код работает как я хочу. Строки скрыты/показаны в зависимости от флажков. Проблема заключается в том, что когда я clik на столбце, чтобы отсортировать его, скрытые столбцы снова появились.
EDIT 2
Я мог заставить сетку, чтобы скрыть строки после сортировки. Но я не нашел, где я могу найти такое событие, как «afterSort». Существует «onSortCol», но он вызывается перед сортировкой.
Решение будет заключаться в том, чтобы использовать «loadComplete». Например:
var params = {
// ...
loadComplete: onLoadComplete
}
function onLoadComplete() {
onCheckbox1Changed();
}
Я пробовал, и он работает. Но я не очень «поклонник» с этим решением.
Какие критерии вы используете для выбора строк, которые вам нужно скрыть? Где вы получаете/удерживаете соответствующие ряды? В какой части кода вы скрываете строки? Какую версию jqGrid вы используете (можете использовать) и из которой вилка jqGrid ([free jqGrid] (https://github.com/free-jqgrid/jqGrid), коммерческая [Guriddo jqGrid JS] (http: // guriddo. net /? page_id = 103334) или старый jqGrid в версии <= 4.7)? – Oleg
Я использую бесплатный jqGrid в версии 4.6. Я не могу его изменить. – Stalyon
Что касается вашего кода и других вопросов, которые я вам задал? – Oleg