如何在编辑时禁用Jqgrid上的保存处理程序

如何在编辑时禁用Jqgrid上的保存处理程序,jqgrid,edit,Jqgrid,Edit,我正在使用Jqgrid开发一个ASP.NETMVC4.0应用程序 我正在将所有行设置为可编辑的,有些列是可编辑的,有些是不可编辑的 这里的问题是,我不想使用Save和ESC处理程序 我正在保存其中一个文本框的模糊事件的行详细信息。我仍然需要保持编辑模式 因此,如果用户错误地按enter键,则该行将退出编辑模式 如何禁用这些Esc和保存处理程序 请帮忙 更新: 我没有使用单元格编辑、内联编辑或表单编辑 我正在Jqgrid的loadComplete触发器上将所有行转换为可编辑 我只有一列是可编辑的。

我正在使用Jqgrid开发一个ASP.NETMVC4.0应用程序

我正在将所有行设置为可编辑的,有些列是可编辑的,有些是不可编辑的

这里的问题是,我不想使用Save和ESC处理程序

我正在保存其中一个文本框的模糊事件的行详细信息。我仍然需要保持编辑模式

因此,如果用户错误地按enter键,则该行将退出编辑模式

如何禁用这些Esc保存处理程序

请帮忙

更新:

我没有使用单元格编辑、内联编辑或表单编辑

我正在Jqgrid的loadComplete触发器上将所有行转换为可编辑

我只有一列是可编辑的。属于文本框类型的

所以,关于它的模糊事件,我正在使用一篇ajax文章将其保存到数据库中

到目前为止,一切都很顺利

在这里,即使在将值保存到数据库后,网格也需要处于编辑模式

但是,当在该行上按enter键时,它将移出编辑模式,这违反了我的要求

当按下ESC或Enter键时,我需要停止行从编辑模式移动到查看模式


我希望这是清楚的。如果没有,我会说得更多。

我是这样解决的:

不知道这样做是否正确:

奥列格..我需要你对此的看法:

    if(cnt > 0) {
        svr.id = rowid; $t.p.savedRow.push(svr);
        $(ind).attr("editable","1");
        $("td:eq("+focus+") input",ind).focus();
        if(o.keys===true) {
            $(ind).bind("keydown",function(e) {
                if (e.keyCode === 27) {
//                  debugger
//                  $($t).jqGrid("restoreRow",rowid, o.afterrestorefunc);
//                  if($t.p._inlinenav) {
//                     try {
//                        $($t).jqGrid('showAddEditButtons');
//                     } 
//                     catch (eer1) {}
//                  }
                    return false;
                }
                if (e.keyCode === 13) {
//                  var ta = e.target;
//                  if(ta.tagName === 'TEXTAREA') { return true; }
//                  if( $($t).jqGrid("saveRow", rowid, o ) ) {
//                      if($t.p._inlinenav) {
//                          try {
//                              $($t).jqGrid('showAddEditButtons');
//                          } catch (eer2) {}
//                      }
//                  }
                    return false;
                }
            });
        }
        $($t).triggerHandler("jqGridInlineEditRow", [rowid, o]);
        if( $.isFunction(o.oneditfunc)) { o.oneditfunc.call($t, rowid); }
    }
这是我在Jqgrid.src.js中找到的代码

因为我确实需要在按下Enter键或ESC键时调用restoreRow和saveRow,所以我注释掉了代码


我不知道这样做是否正确。但是,这确实适用于我的情景。

您的问题内容不清楚。您使用什么编辑模式?你指的是哪个“保存处理程序”?你用什么代码?您是编辑本地数据还是将数据保存在服务器上?对不起,我真的不知道你在做什么。对不起,解释不清楚。我会更新question@oleg..can请检查我编辑过的问题..@Oleg..请在下面找到我的答案..并提出建议。与其使用gridComplete打开编辑功能,不如使用自定义格式设置程序将列呈现为带有onblur的文本输入,您可以将rowid保存为输入的数据属性,以从jqgrid onblur中获取行。顺便说一句,editparameters上有一个keys选项,它也可以得到您想要的结果。