jqgrid中所有高级的一个问题.
我必须编写这个用例:
在jqGrid中有两个可编辑的列.我必须使用单元格编辑.用户单击一个可编辑单元格,当他按下" Enter "键时,我选择下一个可编辑单元格实际的单元格.
否则,当他点击" tab "键时,我选择下一个可编辑的单元格
总结 - 我需要像excel一样的确切行为.
如果我有更好的声誉,我可以上传一张图片来展示所需的情况.

非常感谢.
kaj*_*ajo 11
你的回答对我有很大的帮助,并指导我找到正确的解决方案,虽然我花了超过3个小时来编写正确的代码,但我管理了这个:)
非常感谢.
总结一下:
我定义了2个变量:
var selICol; //iCol of selected cell
var selIRow; //iRow of selected cell
Run Code Online (Sandbox Code Playgroud)
我在beforeEditCell事件中设置它们:
beforeEditCell : function(rowid, cellname, value, iRow, iCol)
{
selICol = iCol;
selIRow = iRow;
},
Run Code Online (Sandbox Code Playgroud)
然后在editoptions两个可编辑单元格我设置:
行中的第一个可编辑单元格(图片中的Inventúrnystav),按下选项卡上的行为以选择下一个可编辑单元格是默认的
editoptions: {
dataInit : function (elem) { $(elem).focus(function(){ this.select();}) },
dataEvents: [
{
type: 'keydown',
fn: function(e) {
var key = e.charCode || e.keyCode;
if (key == 13)//enter
{
setTimeout("jQuery('#inventuraGrid').editCell(" + selIRow + " + 1, " + selICol + ", true);", 100);
}
}
}
]
}
Run Code Online (Sandbox Code Playgroud)
行中的第二个可编辑单元格(图片中的Sklad.cena) - 我手动将iCol设置为下一行中的下一个可编辑单元格
editoptions: {
dataInit : function (elem) { $(elem).focus(function(){ this.select();}) },
dataEvents: [
{
type: 'keydown',
fn: function(e) {
var key = e.charCode || e.keyCode;
if(key == 9) // tab
{
setTimeout("jQuery('#inventuraGrid').editCell(" + selIRow + " + 1, 4, true);", 100);
}
else if (key == 13)//enter
{
setTimeout("jQuery('#inventuraGrid').editCell(" + selIRow + " + 1, " + selICol + ", true);", 100);
}
}
}
]
}
Run Code Online (Sandbox Code Playgroud)