2009-12-02 9 views
0

我遇到了一個困難的錯誤,我不太確定是否有一個很好的方法來解決它。 但我有頁面(.aspx),其中包含一個名爲widget的控件。該小部件在頁面中多次出現。每個小部件都有很多js和jquery,其中一些從控件讀取屬性。 我遇到的問題是控件做了部分回發。而js並沒有被新的價值所刷新。 如果我再次註冊js,那麼js會被調用兩次。一個包含正確的值,另一個包含舊的值。我google了一下,發現無法刪除ScriptManager.RegisterStartupScript中添加的腳本。 所以對我的問題。有沒有什麼聰明的方式不要叫一個老js或用包含正確值的新js替換它?使用updatepanel時Javascript沒有正確加載

回答

0

從我的經驗來看,這是不可能的。我之前遇到過這個問題,並且發現瞭解決方法,但是它總是會導致一個新的bug /問題/使用更新面板和JavaScript的問題。

我的建議是找到一種方法來不使用更新面板的代碼,它已附加到JavaScript。

就我個人而言,我不再使用更新面板,因爲我遇到過的所有問題,比如你的問題。我所做的是,創建自己的MS ASP.NET AJAX控件,實現IScriptControl,使用[ScriptService]屬性與Web服務設置進行交談。具有ScriptService屬性將創建客戶端腳本方法,您可以在JavaScript代碼中輕鬆調用該方法,併爲您處理所有混亂情況。

+0

的確,我一直在同一部分停留了一段時間,但似乎唯一的解決方法是實現更多的jquery ajax調用來正確更新js中的值。 但謝謝您確認無法刪除它們:) – Daniel