1

我有一個使用Telerik MVC和JqueryMobile的Asp.net MVC 3項目。要啓用全球化以正確地處理MVC Grid等項目,請在主佈局頁面中啓用全球化:Jquery Mobile/Telerik全球化錯誤

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

這工作正常,如果我直接調用我的網頁的MVC網格eg myController的/ GridPage,但如果我再嘗試調用通過JqueryMobile對話框同樣的動作我得到以下信息:

0x800a01b6 - JavaScript runtime error: Object doesn't support property or method 'load'

我使用通過JqueryMobile調用的鏈接是:

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

卸下全球化屬性停止錯誤,但也停止全球化

任何人都可以建議我怎麼能通過這個錯誤?

感謝

馬克

回答

0

好吧,我周圍想出了一個工作,但我真的不喜歡它。我認爲當我們像這樣動態地將HTML添加到DOM時,它會清除jQuery.telerik對象,只留下CultureInfo。爲了解決這個問題,你需要在加載原始頁面的時候「註冊」動態HTML中的所有telerik控件。例如,如果您有一個帶有兩個名爲txtPrice和txtQuantity的文本框的彈出窗口,那麼在任何可以顯示此彈出窗口的頁面中,都需要聲明兩個名爲txtPrice和txtQuantity的telerik控件。聲明之後,您可以從DOM中刪除它們。當彈出框被添加到DOM時,它會看到具有該名稱的控件已經被定義,並且所有東西都會像正常一樣工作。在全球化關閉時,考慮到一切正常,這確實是一個奇怪的錯誤。