首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jqGrid EditRow ErroFunc回调使用

jqGrid EditRow ErroFunc回调使用
EN

Stack Overflow用户
提问于 2017-11-10 16:56:05
回答 1查看 74关注 0票数 0

我正在使用jqGrid 4.13.3免费.

我需要使用editRow的errofunc回调,但是在访问表单(页面)时出现了一个JavaScript错误,该表单(页面)上写着“预期”。在代码中,我有注释,解释什么是有效的,然后进行导致错误的更改。

代码语言:javascript
运行
复制
function oSelect(id, status, e) {
  selID = id;
  rejflag = $("#kcdimensionlist").getRowData(id)['rejectedi'];
  $("#kcdimensionlistV7").setColProp('rejectedi', {
    editoptions: {
      dataUrl: '/QMSWebApp/GenericControllerServlet?lifecycle=twowayoptionlist'
    },
    defaultValue: 0
  });
  $("#kcdimensionlistV7").setColProp('rechecki', {
    editoptions: {
      dataUrl: '/QMSWebApp/GenericControllerServlet?lifecycle=threewayoptionlist_NA'
    },
    defaultValue: 0
  });

  var target = $(e.target);

  if (!target.is("img")) {

    if (id && id !== lastsel) {
      $("#kcdimensionlistV7").jqGrid('restoreRow', lastsel);

      //This line works fine but when commented out and modified to next line it fails
      //$("#kcdimensionlistV7").jqGrid('editRow',id,true);
      $("#kcdimensionlistV7").jqGrid('editRow', id, true, errorfunc: eFunc);
      lastsel = id;
    }

  }
};

这是我的eFunc函数:

代码语言:javascript
运行
复制
function eFunc(response, rowid) {
  var res = $.parseJSON(response.responseText);
  if (res) {
    if (!res.errorCode) {
      return [false, res.errorMsg];
    } else {
      return [true];
    }
  }
}

更新代码:

代码语言:javascript
运行
复制
function oSelect(id, status, e) {
  selID = id;
  rejflag = $("#kcdimensionlist").getRowData(id)['rejectedi'];
  $("#kcdimensionlistV7").setColProp('rejectedi', {
    editoptions: {
      dataUrl: '/QMSWebApp/GenericControllerServlet?lifecycle=twowayoptionlist'
    },
    defaultValue: 0
  });
  $("#kcdimensionlistV7").setColProp('rechecki', {
    editoptions: {
      dataUrl: '/QMSWebApp/GenericControllerServlet?lifecycle=threewayoptionlist_NA'
    },
    defaultValue: 0
  });

  var target = $(e.target);

  if (!target.is("img")) {

    if (id && id !== lastsel) {

      $("#kcdimensionlistV7").jqGrid('restoreRow', lastsel);

      $("#kcdimensionlistV7").jqGrid('editRow', id, {
        keys: true,
        errorfunc: eFunc
      });
      lastsel = id;
    }

  }
};

function eFunc(response, rowid) {
  alert("Here");
  var res = $.parseJSON(response.responseText);
  if (res) {
    alert(res.errorCode);
    if (!res.errorCode) {
      return [false, res.errorMsg];
    } else {
      return [true];
    }
  }

}

这是我的servlet代码,用于测试:

代码语言:javascript
运行
复制
else if (lifecycle.equals("editdimensiondatamodelV7")) {

  boolean status = false;
  String returnMsg = "This is a test";


  if (request.getParameter("oper").equals("edit")) {



  }


  jReturnString = "{\"errorCode\": " + status + ", \"errorMsg\": \"" + returnMsg + "\"}";
  response.getWriter().write(jReturnString);

}

更新:

错误代码:

代码语言:javascript
运行
复制
function eFunc(res, rowid) {
  var errorText = $.parseJSON(res.responseText).Message;

  alert("Here: " + errorText);
  return [false];
}

Servlet代码注释:

代码语言:javascript
运行
复制
else if (lifecycle.equals("editdimensiondatamodelV7")) {
  //Would like to send a dynamic message back - Example: Dimensions are ouside of tolerance     

  if (request.getParameter("oper").equals("edit")) {
    response.setStatus(500);
  }
}

eFunc永远不会返回警报和发送..。对话框出现在网格上。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-10 17:17:14

您应该修复包含语法错误的行。

代码语言:javascript
运行
复制
$("#kcdimensionlistV7").jqGrid('editRow',id,true, errorfunc: eFunc);

代码语言:javascript
运行
复制
$("#kcdimensionlistV7").jqGrid('editRow', id, {
    keys: true,
    errorfunc: eFunc
});

我建议您将旧的jqGrid 4.13.3升级到当前的免费jqGrid版本: 4.15.2。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47227695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档