繁体   English   中英

Kendo UI,如何在kendo网格单元上手动调用validate()

[英]Kendo UI, How to manually call validate() on kendo grid cell

有没有办法在不使用editCell()方法的情况下在kendo-grid中的单元上调用validate()

调用Telerik团队推荐的验证器的方法如下:

$("myGrid").data("kendoGrid").editable.validatable.validate()

但是,如果没有单元格打开 (例如网格中没有聚焦输入),则没有可编辑对象可用,因此我必须逐个激活单元格以调用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);
        });

但是这段代码并不优雅而且非常缓慢

我想要实现的是提交时的网格验证。

问题再一次:我可以在每个网格单元上运行kendo验证器,而不必反复进入和退出编辑模式吗?

PS:我正在使用批量编辑(incell)模式

我对此进行了更深入的研究,并且无法在本地支持此批处理验证的网格文档中找到任何内容。 通常,网格格式旨在逐行处理数据,这反映了关系数据库表/电子表格类型的数据表示。 考虑到这一点,典型的插入/编辑/验证/删除操作旨在一次在单行或记录上执行。

我的回答是:不。 如果不重复进入和离开需要验证的每个单元格的编辑模式,则无法运行Kendo验证。

您可能能够深入了解Kendo JS库并确切地知道如何调用验证,并创建一些自定义方法以批量方式调用它。 下一个剑道更新出来后,这样的事情可能会破裂。

为了加快速度,您可能需要一种聪明的方法来验证输入的数据; blur ; 或者作为使用setTimeout的“后台”任务; 或打包数据并通过Ajax将其发送回服务器,然后以某种方式处理返回消息。

祝好运!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM