参见英文答案 >
Prevent restoring row if error was rised while editing2个
使用内联编辑模式编辑jQgrid行.
按Enter键使用http POST将数据发送到服务器.
如果出现错误,POST方法返回状态400 Bad Reguest.下面的代码中的errorofunc显示错误
案件.
用户更正行中的数据并再次按Enter键.
使用内联编辑模式编辑jQgrid行.
按Enter键使用http POST将数据发送到服务器.
如果出现错误,POST方法返回状态400 Bad Reguest.下面的代码中的errorofunc显示错误
案件.
用户更正行中的数据并再次按Enter键.
按Enter键将被忽略,没有任何反应.如果返回404错误,则看起来Enter键未绑定.
已编辑行的更改将丢失,无法保存.
我试着在errorfunc中设置
restoreAfterError = false;
grid.restoreAfterErorr = false;
但是错误后行仍然无法再次保存.
返回400错误后如何允许保存正确的行数据?
<script type="text/javascript"> var lastSelectedRow; $(function () { var grid = $("#grid"); grid.jqGrid({ url: '/Grid/GetData',datatype: "json",mtype: 'POST',scroll: 1,multiselect: true,multiBoxonly: true,scrollingRows : true,autoencode: true,colModel: [ { name: 'Source',fixed: true,editable: true,width: 30 },{ name: 'Est',width: 271 },{ name: 'Istopic',width: 57 },{name: 'Critical',width: 50} ],gridview: true,pager: '#pager',sortname: 'est',viewrecords: true,rowNum: 30,sortorder: "asc",editurl: '/Grid/Edit' }); $("#grid").jqGrid('bindKeys',{ onEnter: function(rowid) { doeditRow(rowid); } } ); }); function doeditRow(rowID) { var grid2 = $("#grid"); if (rowID && rowID !== lastSelectedRow) { grid2.jqGrid('restoreRow',lastSelectedRow); lastSelectedRow = rowID; } invokeEditRow(); } function errorfunc(rowID,response) { // todo: why this does not allow Enter key to continue ase after error: restoreAfterError = false; $("#grid").restoreAfterErorr = false; alert(response.responseText); lastSelectedRow = rowID; invokeEditRow(); return true; } function invokeEditRow() { $("#grid").jqGrid('editRow',lastSelectedRow,true,null,{},errorfunc ); } </script> <div id="grid1container" style="width: 100%;"> <table id="grid"> </table> <div id="pager"> </div> </div>
UPDATE: errrofunc calls editrow which
according to
07001
should set enter key again to save.
For unknown reason this does not
occur.
更新:在errorfunc网格中.改为
$("#grid").restoreAfterErorr = false;
根据奥列格的评论
@H_502_36@解决方法
您在errorfunc实现(grid.restoreAfterErorr)中使用变量网格.网格
是未定义的,你在行中有异常.
是未定义的,你在行中有异常.
更新:你应该替换alert(response.responseText);至
$.jgrid.info_dialog($.jgrid.errors.errcap,'<div class="ui-state-error">'+ response.responseText +'</div>',$.jgrid.edit.bClose,{buttonalign:'right'});
查看与标准情况下相同的样式对话框.内联编辑的errorfunc负责显示错误消息本身.
@H_502_36@ @H_502_36@