1

想要在 jqGrid 中最后一个单元格的 tab 键按下添加 keydown 事件以添加新行。当行处于内联模式时,请帮助我仅将 keydown 事件附加到网格的最后一个单元格。这是获取 lastrow 的选择器

var lastRow = $('#grid>tbody>tr.jqgrow:last');
  1. 如何指定最后一行的最后一列选择器。
  2. 请建议是否可以像这样动态绑定事件。
  3. 这个绑定事件代码放在哪个地方比较好,比如loadComplete。
4

2 回答 2

0

你得到最后一行怎么样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 函数等。

于 2013-03-15T12:51:49.937 回答
0

这就是我使用您的解决方案的方式

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');
};
于 2013-03-18T11:49:57.340 回答