jqGrid内联编辑-addRow键第一次不工作
我想使用Esc和输入键的内联编辑,我正在使用jqGrid内联编辑-addRow键第一次不工作,jqgrid,jqgrid-inlinenav,Jqgrid,Jqgrid Inlinenav,我想使用Esc和输入键的内联编辑,我正在使用inlineAV方法。我已经为editRow方法设置了keys:true,并且键正在工作。当我使用“添加行”按钮时,键不是第一次分叉。我必须用鼠标取消此操作,当我再次尝试添加行时,键正常工作。我不知道如何调试这个。是JQV。4.4.4 $(“myGrid”).jqGrid(finalConfig) .navGrid(gridToolbar).inlineNav(gridToolbar{ editParams:{keys:true} } ); 如果您想为
inlineAV
方法。我已经为editRow
方法设置了keys:true
,并且键正在工作。当我使用“添加行”按钮时,键不是第一次分叉。我必须用鼠标取消此操作,当我再次尝试添加行时,键正常工作。我不知道如何调试这个。是JQV。4.4.4
$(“myGrid”).jqGrid(finalConfig)
.navGrid(gridToolbar).inlineNav(gridToolbar{
editParams:{keys:true}
}
);
如果您想为内联编辑定义一些常用设置,我建议您使用$.jgrid.inlineEdit
。比如说
$.extend($.jgrid.inlineEdit,{keys:true});
在这种情况下,您将在使用内联编辑的任何形式中使用Enter键。在按格式化程序激活内联编辑的情况下,“操作”的工作方式与inlineNav
添加的添加和编辑按钮相同
或者,您必须按以下方式为InlineAV中的“添加行”按钮指定专用选项
$(“#myGrid”).jqGrid(“inlineNav”,“#pager”{
editParams:{keys:true},
addParams:{addRowParams:{keys:true}}
});
通常在一个对象中定义所有内联编辑选项,并两次使用同一对象的选项:
var editingOptions={keys:true};
$(“#myGrid”).jqGrid(“inlineNav”,“#pager”{
编辑参数:编辑选项,
addParams:{addRowParams:editingOptions}
});
有关更多代码示例,请参见
更新:我想我找到了为什么在开始添加操作时使用了键:false
,但后来使用了键:false
的原因。原因是我刚才发布的bug。您可以尝试使用固定版本的jquery.jqGrid.src.js
(您可以得到它)。原因是
inlineav
有一个bug:它总是在“取消”事件处理程序(请参阅)中使用editparms
,即使我们取消了“添加”操作。因此,调用方法restoreRow
,并将editParams
作为参数restoreRow
更改$.jgrid.inlineEdit
,而不仅仅是使用它。要修正这个错误,必须改变线路o=$.extend(true,$.jgrid.inlineEdit,o);
到
o=$.extend(true,{},$.jgrid.inlineEdit,o);
myfinalConfig
VarialFile imho不包含任何与问题相关的内容,但我可以导出它并根据需要编辑我的问题。您是否为addRowParams:
设置了键:true
?@Mark,inlineav
方法只支持addParams
对象,而keys
选项在这里不起作用。我不是直接配置addRow
方法,甚至不是editRow
,而是内联导航器。和addRow
方法调用editRow
itselfs。但这似乎是某种错误,它不工作,只有一次,这是确定的第二次尝试。。。在回答问题之前,我查看了文档,重点关注传递给addRow的addRowParams:(对象)参数-它们与editRow的参数相同,实际上,正如Oleg所述,这是解决方案的一个很好的途径。无论如何,我也要谢谢你。谢谢你addParams:{addRowParams:{keys:true}}
是一种解决方案。但我仍然无法理解第一个场景,为什么第一次尝试(没有addRowParams)和第二次尝试(使用继承的editParams)时什么都没有发生。我以为在用户输入之前已经调用了editRow方法…@pavian:不客气!“第一种情况”是什么意思?是$.extend($.jgrid.inlineEdit,{keys:true})的用法代码>不工作?您是否在调用InlineAV的之前放置了线路?如果不使用任何addParams.addRowParams
选项,则在添加内部调用editRow
时,只会使用editRow
的默认选项。如果单击“编辑”按钮,则会使用editparms
选项调用编辑行。。。为什么第二次尝试有效?@pavian:我不明白你的意思。你能解释清楚你想要什么吗?在您在问题中发布的代码中,您没有为“添加”按钮指定和选项。只能为“编辑”按钮指定设置。因此,“添加”使用的默认值keys:false
@pavian:可能在inlineNav
中还有一些额外的bug,但是您应该为演示提供复制它的测试用例的准确描述。例如,两天前,我在方法中发布了3个bug(请参阅)。我相信还有很多其他的错误。只需单击一次添加按钮,第二次单击时不会更改演示中的key:false
行为。我假设,如果同时单击“添加”和“编辑”按钮(例如,如果您在“编辑”按钮之后单击“添加”),则存在该错误。