Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jqGrid内联编辑-addRow键第一次不工作_Jqgrid_Jqgrid Inlinenav - Fatal编程技术网

jqGrid内联编辑-addRow键第一次不工作

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} } ); 如果您想为

我想使用Esc和输入键的内联编辑,我正在使用
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);
    
    my
    finalConfig
    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
    行为。我假设,如果同时单击“添加”和“编辑”按钮(例如,如果您在“编辑”按钮之后单击“添加”),则存在该错误。