0

我有以下情况:

带有一些可编辑列的数据表,这些列使用 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 在数据表上显示错误并在服务器端进行验证的另一种方法是什么?

谢谢你。

4

1 回答 1

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])

只是

于 2016-02-19T09:57:21.583 回答