webix:验证服务器上数据表的编辑

时间:2016-02-17 19:21:42

标签: webix

我有以下情况:

包含一些可编辑列的数据表,这些列使用webix规则验证客户端上的输入。虽然有列,但无法在客户端验证,但仅在服务器上验证(即对于唯一的ID /代码)。

一种方法是创建一个规则并在同步模式下使用webix.ajax进行验证,我宁愿一定要避免这种情况。

我以为我可以验证'保存'。服务器可以返回错误或成功的状态响应。我可以通过数据表的onAfterUpdate事件来捕获这个(如果有更好的方法,请纠正我,但它以这种方式工作)。 此时,如果服务器脚本返回错误状态并且标记该行(可能还有相应的列/单元格),我想在数据表上显示验证错误。 我以为我可以在数据表上使用callEvent方法并触发onValidationError事件,但我没有设法使其工作。

save: {
  url: "save.php",
  autoupdate: true,
  on:{
    onAfterUpdate:function(response, id, details) {
      if (response.status == 'error')
        myDataTable.callEvent('onValidationError');
    }
  }
}

文档说明我可以从callEvent向参数传递一些参数,但我找不到文档的任何规范。上面的代码不起作用(事件未被触发)。

所以问题是:如何使用callEvent为数据表触发onValidationError事件?

或者使用webix在服务器端通过验证在数据表上显示错误的另一种方法是什么?

谢谢。

1 个答案:

答案 0 :(得分:1)

您可以使用

而不是调用onValidationError事件
//mark cell, call after error response
myDataTable.addCellCss(id, columnId, "webix_invalid");
//remove mark, call after success response
myDataTable.removeRowCss(id, "webix_invalid");

将单元格标记为无效。

另外,如果您想使用参数触发某个事件,可以使用下一个代码。请注意,触发事件不是更改组件状态的好方法(它可以用于触发您自己的事件处理程序)

myDataTable.callEvent("event name", [param1, param2, param3])

只是