我正在使用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');
但我不知道该怎么办?是否有一行取消选择的事件或我可以使用的等效事件?
答案 0 :(得分:2)
有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
}
});