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。无论哪种方式我都不介意 - 只是哪个是钩子。
与将所有内容重构为特定的错误处理程序等相比,这将是一个更直接的短期解决方案。
【问题讨论】:
您说DataSource
、Grid
、Kendo
控件的全局错误处理……我不清楚实际要求是什么。 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 - 全局错误处理?的主要内容,如果未能解决你的问题,请参考以下文章
使用 jQuery 更改 Kendo Grid DataSource 特定字段