szt*_*pen 5 javascript validation jquery kendo-ui kendo-grid
有没有一种方法可以在不使用editCell()方法的情况下在kendo-grid的单元格上调用validate()?
Telerik小组建议的调用验证器的方法如下:
$("myGrid").data("kendoGrid").editable.validatable.validate()
Run Code Online (Sandbox Code Playgroud)
但是,如果没有打开的单元格(例如,网格中没有集中的输入),则没有可编辑的对象可用,因此我必须逐个激活单元格以调用validate()
我想在每个网格单元上调用验证并运行一些逻辑(例如addClass())
如果我jquery遍历网格中的所有td元素并调用validate(),则成功,如下所示:
$(".k-grid-content td").each(function () {
var cell = $(this);
grid.editCell(cell);
if (!grid.editable.validatable.validate()) {
cell.addClass("cell-invalid");
};
grid.closeCell(cell);
});
Run Code Online (Sandbox Code Playgroud)
但是,这段代码并不优雅,而且运行缓慢。
我正在尝试实现的是提交时的网格验证。
问题再次声明:我可以运行在每个网格单元剑道验证,无需反复进入和离开编辑模式?
PS:我正在使用批处理编辑(incell)模式
我对此进行了更深入的研究,但无法在网格文档中找到任何本地支持此批量验证的内容。一般来说,网格格式旨在逐行处理数据,这反映了关系数据库表/电子表格类型的数据表示。考虑到这一点,典型的插入/编辑/验证/删除操作旨在一次对单行或记录执行。
我的回答是:不。如果不重复进入和离开每个需要验证的单元格的编辑模式,则无法运行 Kendo 验证。
如果您可以深入研究 Kendo JS 库并弄清楚如何调用验证,并创建一些自定义方法以批量方式调用它,您也许能够做到。一旦下一个 Kendo 更新发布,类似的事情可能会崩溃。
为了使其更快,您可能必须想出一种巧妙的方法来验证输入的数据;或 上blur; 或作为“后台”任务使用setTimeout; 或者打包数据并通过 Ajax 将其发送回服务器,然后以某种方式处理返回消息。
祝你好运!
| 归档时间: |
|
| 查看次数: |
6191 次 |
| 最近记录: |