从其 DataSource 获取 Kendo Grid

Posted

技术标签:

【中文标题】从其 DataSource 获取 Kendo Grid【英文标题】:Getting Kendo Grid from its DataSource 【发布时间】:2015-09-02 02:48:38 【问题描述】:

我正在为所有的剑道网格编写一个通用的错误处理程序。我需要获取该源 Grid 以防止其在保存数据时的默认行为。在处理程序中,您可以通过args.sender 访问源的DataSouce。如何从该 DataSouce 访问 Kendo Grid?

我找到的唯一方法是this suggestion,搜索所有网格,处理程序如下所示,您能提出更好更高效的建议吗?

function genericErrorHandler(args) 
    if (args.errors) 
        $('.k-grid').each(function () 
            var grid = $(this).data('kendoGrid');
            if (grid.dataSource == args.sender) 
                alert('found!');
            
        )
    

【问题讨论】:

【参考方案1】:

没有从数据源获取 Grid 对象的 API,但除此之外还有很多方法。

您可以创建通用网格的编辑事件并将触发该事件的网格 ID 存储在全局范围变量中。我更喜欢这样做而不是比较可变数据源。

var window.currentGrid = "";

function onGenericGridEdit(e) 
    window.currentGrid = e.sender;

如果在某些情况下您需要自定义编辑功能,只需在代码末尾调用您的通用编辑功能即可。

function onCustomGridEdit(e) 

   // call generic function to store
   onGenericGridEdit(e);

【讨论】:

以上是关于从其 DataSource 获取 Kendo Grid的主要内容,如果未能解决你的问题,请参考以下文章

如何在 kendo.data.Datasource 上获得单一结果

Kendo UI Grid/DataSource - 全局错误处理?

在Kendo Grid中绑定时获取错误复选框

Kendo UI dataSource传输调用php函数

使用 jQuery 更改 Kendo Grid DataSource 特定字段

Kendo DataSource:如何为从远程 odata 源读取的数据定义“计算”属性