jqGrid - Как снять флажок строки заголовка

Here is the scenario:

1. Выберите все строки, установив флажок строки заголовка. 2. Снимите выделение с одной строки. 3. Флажок строки заголовка все еще установлен, что недействительно, поскольку выбраны не все строки.

Как я могу снять флажок строки hedaer? Спасибо


person Darren    schedule 13.01.2011    source источник


Ответы (2)


Вы можете использовать метод resetSelection. Посмотрите пример, подготовленный для это и этот вопрос. Кнопка «Очистить выделение» использует метод resetSelection.

person Oleg    schedule 13.01.2011
comment
resetSelection отменит выбор всех строк. Что нам нужно сделать, так это снять флажок заголовка, но оставить строки, которые сейчас выбраны, как выделенные. - person Darren; 13.01.2011
comment
@Darren: в случае, если вы должны получить идентификаторы текущих выбранных строк с помощью getDataIDs, вызовите resetSelection, а затем вызовите setSelection для всех ранее выбранных идентификаторов. См. Код, выполняемый при нажатии кнопки "Select All" в примере ok-soft-gmbh.com /jqGrid/DataToMultiSelect2.htm. После небольшой модификации у вас будет то, что вам нужно. - person Oleg; 13.01.2011

Вы можете сделать следующее:

var grid = $("#ID_OF_YOUR_GRID");

grid.jqGrid({
        //other options
        multiselect: true,
        onSelectRow: function (rowid, status) {     
           var chkSelectAll = $("#ID_OF_THE_HEADER_CHECKBOX_USUALLY_CB_DATA");

           if (chkSelectAll.length && chkSelectAll.is(':checked') && !status) {          
              chkSelectAll.removeAttr('checked');
           }
         }
     });

КСТАТИ. Вам это нужно только в более старых версиях JQGrid. Я проверил в версии 4.3.1, это работает из коробки.

person Martijn B    schedule 02.02.2012