我有以下情况:
包含一些可编辑列的数据表,这些列使用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在服务器端通过验证在数据表上显示错误的另一种方法是什么?
谢谢。
答案 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])
只是