1

我有一个使用 Telerik MVC 和 JqueryMobile 的 Asp.net MVC 3 项目。为了使全球化能够对诸如 MVC 网格之类的项目正常工作,我在主布局页面中使用以下内容启用了全球化:

@(Html.Telerik().ScriptRegistrar().Globalization(true).DefaultGroup(group => group.Combined(true).Compress(true)))

如果我直接使用 MVC Grid 调用我的页面,这很好用,例如 mycontroller/GridPage ,但是如果我尝试通过 JqueryMobile 对话框调用相同的操作,我会收到以下消息:

0x800a01b6 - JavaScript 运行时错误:对象不支持属性或方法“加载”

我用来通过 JqueryMobile 调用的链接是:

@Html.ActionLink("My Grid", "GridPage ", "mycontroller", new { data_rel = "dialog", data_theme = "b", data_transition = "flip" })

删除 Globalization 属性会停止错误,但也会停止 Globalization

有人可以建议我如何克服这个错误吗?

谢谢

标记

4

1 回答 1

0

好吧,我想出了一个解决方法,虽然我不是很喜欢它。我认为当我们像这样动态地将 HTML 添加到 DOM 时,它会清除 jQuery.telerik 对象,只留下 CultureInfo。为了解决这个问题,您需要在加载原始页面时/在动态 HTML 中“注册”所有 Telerik 控件。

例如,如果您有一个带有 2 个名为 txtPrice 和 txtQuantity 的文本框的弹出窗口,那么在任何可以显示此弹出窗口的页面中,您都需要声明 2 个名为 txtPrice 和 txtQuantity 的 Telerik 控件。声明后,您可以将它们从 DOM 中删除。当弹出窗口被添加到 DOM 时,它将看到具有该名称的控件已经定义,并且一切都会正常工作。考虑到关闭全球化时一切正常,这确实是一个奇怪的错误。

于 2012-08-17T17:44:33.830 回答