想要在 jqGrid 中最后一个单元格的 tab 键按下添加 keydown 事件以添加新行。当行处于内联模式时,请帮助我仅将 keydown 事件附加到网格的最后一个单元格。这是获取 lastrow 的选择器
var lastRow = $('#grid>tbody>tr.jqgrow:last');
- 如何指定最后一行的最后一列选择器。
- 请建议是否可以像这样动态绑定事件。
- 这个绑定事件代码放在哪个地方比较好,比如loadComplete。
想要在 jqGrid 中最后一个单元格的 tab 键按下添加 keydown 事件以添加新行。当行处于内联模式时,请帮助我仅将 keydown 事件附加到网格的最后一个单元格。这是获取 lastrow 的选择器
var lastRow = $('#grid>tbody>tr.jqgrow:last');
你得到最后一行怎么样loadcomplete
,然后在最后一列添加一个类。然后,您可以向它添加一个 jQuery 事件处理程序来侦听 tab 键以触发添加新记录功能。
您将如何执行此操作的粗略概述:
获取行的 ID:
var rowIds = $(grid).jqGrid('getDataIDs').length;
如果您知道最后一列名称,您可以使用它,否则您可以获得colNames
数组的长度。
var lastCol = $(grid).jqGrid('getGridParam', 'colNames').length;
然后只需通过以下方式将一个类设置为最后一行中的最后一个列:
$(grid).jqGrid('setCell', rowIds, lastCol, "", 'TabTriggerClass');
从那里你应该在最后一行的最后一列上有一个类,你只需绑定一个事件处理程序,然后是 add 函数等。
这就是我使用您的解决方案的方式
var bindEventToLastCell = function(){
jQuery(".TabTriggerClass").on('keydown', function(e){
if (e.which == 9 && jQuery(e.currentTarget).hasClass('TabTriggerClass')) {
$(this).removeClass('TabTriggerClass');
$(this).off(e);
//Performing other actions
}
});
};
var addTabTriggerClassToLastCell = function(grid) {
var lastRowId = jQuery('#' + jQuery(grid).attr('id') + '>tbody>tr.jqgrow:last').attr('id');
var lastCol = getLastEditableColumnIndex(grid);
grid.setCell(lastRowId, lastCol, "", 'TabTriggerClass');
};