1

Telerik MVC と JqueryMobile を使用した Asp.net MVC 3 プロジェクトがあります。MVC グリッドなどのアイテムに対してグローバリゼーションが適切に機能するようにするには、マスター レイアウト ページで次のように使用してグローバリゼーションを有効にします。

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

mycontroller/GridPage など、MVC グリッドを使用してページを直接呼び出すと、これは正常に機能しますが、JqueryMobile ダイアログを介して同じアクションを呼び出そうとすると、次のメッセージが表示されます。

0x800a01b6 - JavaScript ランタイム エラー: オブジェクトはプロパティまたはメソッド 'load' をサポートしていません

JqueryMobile 経由で呼び出すために使用するリンクは次のとおりです。

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

グローバリゼーション属性を削除すると、エラーが停止しますが、グローバリゼーションも停止します

このエラーを回避する方法を教えてもらえますか?

ありがとう

マーク

4

1 に答える 1

0

さて、私はそれがあまり好きではありませんが、回避策を見つけました。このように動的に HTML を DOM に追加すると、jQuery.telerik オブジェクトが消去され、CultureInfo だけが残ります。これを回避するには、元のページがロードされたときに、ダイナミック HTML 内のすべてのテレリック コントロールを「登録」する必要があります。

たとえば、txtPrice と txtQuantity という名前の 2 つのテキスト ボックスを含むポップアップがある場合、このポップアップを表示できる任意のページで、txtPrice と txtQuantity という名前の 2 つの telerik コントロールを宣言する必要があります。宣言後、それらを DOM から削除できます。ポップアップが DOM に追加されると、その名前のコントロールが既に定義されていることがわかり、すべてが正常に機能します。グローバリゼーションがオフになっているときにすべてが正常に機能することを考えると、これは本当に奇妙なエラーです。

于 2012-08-17T17:44:33.830 に答える