2016-07-31 3 views
-1

Я использую jqgrid версию 4.4.4, и у меня есть существующая заполненная таблица jqgrid, где я хотел бы отключить строку, когда пользователь выбирает определенное значение во внешнем выпадающем меню.
image
Отключить выбор строки в существующем jqgrid

enter image description here

Например, в качестве изображения показывает, если пользователь выбирает значение 1, я хотел бы, что все строки с различными ID (0 и 2), содержащимися в таблице становится неактивно. Точно так же, когда выбрано значение 0, строки 1 и 2 будут не выбраны и так далее.

Я хотел бы сделать это без использования метода gridUnload.

Теперь я нашел способ отключить кнопку ввода, но пользователь может нажать на строку в любом случае и выбрать значение.

Любые идеи?

Спасибо заранее

+1

Вы должны точно описать свою проблему. Вы в настоящее время писали о «изменении нескольких атрибутов». Что вы подразумеваете под «атрибутом»? Вы имеете в виду опции jqGrid? Некоторые опции могут изменяться динамически, другой - без возможности подключения. Таким образом, вы должны точно указать, что вам нужно реализовать. Другой пример: вы пишете о «выпадающем меню». Вы имеете в виду какое-то * внешнее меню * вне jqGrid или вы имеете в виду выпадающий список из панели инструментов фильтра или поля редактирования (в случае использования встроенного редактирования, редактирования ячейки или редактирования формы) или подачи диалогового окна поиска jqGrid? – Oleg

+0

Включение кода JavaScript, который вы используете, или некоторые изображения были бы полезными. – Oleg

+0

спасибо за ответ. Я переписываю пост ... – Cyr

ответ

0

jqGrid позволяет определить ваш beforeSelectRow обратного вызова, который будет называться перед тем будет выбран новый ряд. Обратный вызов получает rowid текущей строки выбора в качестве параметра. Обратный вызов может сначала получить значение выбранного элемента во внешнем выпадающем списке, а затем вернуть true или false на основании выбранного значения и rowid выбора строки. В способе вы можете реализовать свои требования.

Кроме того, вы можете использовать метод getGridParam с параметром "selarrrow", чтобы получить массив со списком rowid всех выбранных в данный момент строк. Вы можете изменить текущий выбор на jqGrid после того, как пользователь изменит выбор во внешнем выпадающем меню. Вы можете использовать метод setSelection для переключения выбора определенной строки.

Вы можете реализовать дополнительно onSelectAll callback, который вызывается, если пользователь нажимает на заголовок столбца столбца multiselect для выбора или отмены выбора всех строк. Вы можете переключить выбор некоторых строк, чтобы сохранить правило, за которым вы хотите следовать.

Я бы порекомендовал использовать опцию jqGrid для настройки внешнего вида сетки height: "auto". Кроме того, я рекомендую вам обновить версию с версии 4.4.4 до free jqGrid 4.13.4. Вы можете использовать, если из CDN напрямую (см. the wiki) или загрузить его с NuGet, npm, bower или от Maven Central. Версия 4.4.4 мертва, и она не поддерживается больше.

Смежные вопросы