#javascript #jqgrid
#javascript #jqgrid
Вопрос:
У меня есть флаг использования multiselect: true
jqgrid, он отображается, как показано ниже. Теперь я хочу спросить, как я могу показать флажок в некоторых строках, иначе скрыть все. Например, флажок показывать в строках с идентификатором включает 44
, 40
, 32
, 26
(все они прошли мои условия), поэтому остальные будут скрыты (не прошли мои условия).
Когда я нажимаю на флажок проверить все в заголовке, jqgrid необходимо выбрать строку с идентификатором 44
, 40
, 32
, 26
и исключить другие.
Мои условия были получены из объекта rows.
Кто-нибудь, пожалуйста, помогите мне, я исследовал в течение двух дней, но не получил никакого результата по этому поводу.
Комментарии:
1. Какая версия jqGrid используется?
2. @TonyTomov Я использовал версию 4.7.1
Ответ №1:
Вы используете очень старую версию, и я не уверен, поддерживается ли это. В любом случае вы можете попробовать. Чтобы не выбирать определенные строки с флажком «установить все», вам нужно будет добавить класс «ui-state-disabled» в эту строку. Обычно вы можете сделать это двумя способами:
- для этого используйте событие rowattr (это делается только при вставке строки)
- если вы знаете идентификатор строки в сетке
Для события rowattr ваш код может выглядеть следующим образом:
$("#grid").jqGrid({
...
rowattr : function( rowData ) {
if( rowData.myfield === "A") {
return { "class": "ui-state-disabled" };
} else {
return {};
}
},
...
});
Полезно прочитать документы для этого события.
Во втором случае вы просто будете использовать jQuery, например
$("#my_row_id", "#grid_id").addClass('ui-state-disabled');
Комментарии:
1. Спасибо за вашу помощь. Я остановил этот проект и не могу попробовать ваш ответ. Желаю вам всего наилучшего.