Событие для отмены выбора строки в JQGrid - PullRequest
1 голос
/ 07 декабря 2011

Я использую JQGrid и у меня определена кнопка «Добавить новый».

$(gridId).jqGrid('navButtonAdd', pagerId, {
    caption: "Add Record",
    buttonicon: "ui-icon-add",
    onClickButton: function (id) {
        var newId = -1;
        $('#addButton').addClass('ui-state-disabled');
        var datarow = { Id: newId, 'Active': true, 'Location': '', 'LabCode': '', 'Crops': '', 'LabManager': '', 'MarkerChoice': '', 'AllowPlates': '', 'AllowTape': '' };
        var su = jQuery(gridId).jqGrid('addRowData', newId, datarow, "last");
        if (su) {
            $(gridId).jqGrid('setSelection', newId);
        }
    },
    position: "last",
    id: "addButton"
});

Как вы можете видеть, когда кнопка нажата, она отключается, поэтому ее нельзя нажать снова. Моя проблема в том, что когда пользователь нажимает кнопку «Добавить», а затем нажимает «Esc», мне нужно снова включить кнопку «Добавить»:

$('#addButton').removeClass('ui-state-disabled');

Но я не уверен, где это сделать? Есть ли в строке невыбранное событие или эквивалент, который я мог бы использовать?

1 Ответ

2 голосов
/ 07 декабря 2011

Существует метод onSelectRow. Вы можете захватить выбранную строку, и если она изменится или будет равна -1, вы можете вызвать removeClass() код.

var lastSel;
jQuery("#gridid").jqGrid({
...
   onSelectRow: function(id){ 
      if(id && id!==lastSel){ 
         ... 
         lastSel=id; 
      } 
   },
...
});

Редактировать: Для захвата клавиши ESC:

/* could use window or a specific element if required */
$(window).keydown(function(e) {   // or keyup, keypress
        if (e.keyCode == '27') {  // ESC
            e.preventDefault();
            // do something with the grid
        }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...