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

Posted

技术标签:

【中文标题】Kendo UI Grid/DataSource - 全局错误处理?【英文标题】:Kendo UI Grid/DataSource - Global Error Handling? 【发布时间】:2013-03-08 03:08:07 【问题描述】:

我目前继承了一个应用程序,该应用程序自始至终具有许多 Kendo 网格(和其他控件),并且我正在尝试修复一个不断出现的错误 - 特别是当用户不再经过身份验证时。

我知道针对单个控件实例的解决方案是什么 - 返回一个标志以指示身份验证失败,然后在错误处理程序中检测到这一点并执行身份验证。

问题是我真的必须为我拥有的每个剑道控件实例处理这个吗?没有我可以挂钩的全局错误处理程序吗?要么用于数据源本身(据我所知,这用于所有 Kendo 控件数据加载),要么专门用于 Grid。无论哪种方式我都不介意 - 只是哪个是钩子。

与将所有内容重构为特定的错误处理程序等相比,这将是一个更直接的短期解决方案。

【问题讨论】:

您说DataSourceGridKendo 控件的全局错误处理……我不清楚实际要求是什么。 DataSource足够了吗? 对不起,我的问题应该更清楚 - 我已将其更新为更明确。我不介意任何一种方式 - 如果提供这样的功能,数据源级别本身就足够了。 【参考方案1】:

我假设您可以将全局错误处理程序附加到 DataSource 使用的 $.ajax,您可以在此处查看如何执行此操作: http://api.jquery.com/category/ajax/global-ajax-event-handlers/

或者,您可以利用在 DataSource 中完成的配置直接传递给 $.ajax: http://docs.kendoui.com/api/framework/datasource#configuration-transport.read-ObjectStringFunction

【讨论】:

谢谢博蒂斯。我不知道这是可能的。我会看看,很快就会回来报告:)。 @Botus 提出的建议有效。我连接到全局 jQuery ajaxComplete 处理程序,该处理程序为所有 jQuery Ajax 请求触发 - 无论是使用我们自己的函数还是 Kendo。如果未在服务器上进行身份验证,我只需添加一个标头以让客户端知道需要身份验证(我无法设置状态代码,因为这会导致其他问题) - 然后重定向到登录页面。完美!【参考方案2】:

作为参考,Telerik 的某个人提供了一个仅使用 DataSource 的解决方案。我还没有测试过,但我更喜欢上面接受的答案,因为它与网站上的所有 Ajax 挂钩——不仅仅是那些使用 Kendo DataSource 的。

http://www.kendoui.com/forums/mvc/grid/global-error-handler-for-numerous-grids.aspx

【讨论】:

以上是关于Kendo UI Grid/DataSource - 全局错误处理?的主要内容,如果未能解决你的问题,请参考以下文章

Kendo UI 网格复选框列

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

禁用在kendo网格中编辑

Kendo Grid - 如何停止或阻止数据绑定事件

如何在 kendo.ui.grid 中创建自定义 kendo.ui.Window 以进行编辑

kendo ui - core