希望在jqGrid中最后一个单元格的tab键按下添加keydown事件以添加新行。请帮助我把键下事件附加到网格的最后一个单元格时,行是在内联模式。这是获取lastrow
的选择器var lastRow = $('#grid>tbody>tr.jqgrow:last');
- 如何指定最后一行的最后一列选择器。
- 请建议是否可以像这样动态绑定事件。 把这个绑定事件代码放在哪个地方更好呢,比如loadComplete。
在loadcomplete
上,您获得最后一行,然后向最后一列添加一个类。然后你可以添加一个jQuery事件处理程序来监听tab键来触发添加新记录函数。
你将如何做的大致大纲:
获取行Id:
var rowIds = $(grid).jqGrid('getDataIDs').length;
如果你知道最后一个列名,你可以使用它,如果不知道,你可以得到colNames
数组的长度。
var lastCol = $(grid).jqGrid('getGridParam', 'colNames').length;
然后通过:
将class设置为最后一行的最后一个col$(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');
};