2015-06-17 67 views
1

我正在为所有的Kendo Grids编写一个通用的错误处理程序。我需要获取该源网格以防止其保存数据的默认行为。在处理程序中,您可以通过args.sender访问源的DataSouce。我如何从DataSouce访问Kendo网格?从其DataSource获取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

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

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

var window.currentGrid = ""; 

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

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

function onCustomGridEdit(e) { 

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