Как я могу показать только некоторый флажок в поле множественного выбора базы jqGrid в зависимости от условий

#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» в эту строку. Обычно вы можете сделать это двумя способами:

  1. для этого используйте событие rowattr (это делается только при вставке строки)
  2. если вы знаете идентификатор строки в сетке

Для события 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. Спасибо за вашу помощь. Я остановил этот проект и не могу попробовать ваш ответ. Желаю вам всего наилучшего.