我知道這似乎不切實際,但我真的更喜歡這樣做,因爲我正在重新構建此WebForms頁面以滿足緊急的最新業務需求。ASP.NET WebForms:在通過UpdatePanel使其可見後,如何訪問不可見,非呈現的Javascript?
我有一個自定義的用戶控件。在這個用戶控件中是一個Javascript塊,它包含連接到各種控件'onclick
和onchange
事件的函數。之前,該控件的.Visible
屬性爲True
,因此其HTML和Javascript會在頁面上呈現。
現在我需要將我的控件的.Visible
屬性設置爲false
並在其周圍包裝UpdatePanel。這樣做可以防止在初始頁面加載期間呈現控件的HTML。要顯示該控件的內容,用戶必須單擊一個按鈕,該按鈕將按照服務器端方法將控件的.Visible
屬性設置爲true
。由於它現在在UpdatePanel中,控件以Ajaxy的方式出現在頁面上。但是,似乎位於控件中的Javascript無法訪問,因此沒有任何子控件的onclick
和onchange
事件正在工作,因爲它們的相關Javascript函數是undefined
。
的解決方案,我不喜歡使用的過於複雜的進入爲簡潔起見原因:
- JSON/AJAX(參與這樣短的時間太多rearchitecture)
- CSS顯示:none/visibility:visible(我需要保留儘可能多的serverside功能,以儘量減少重新架構)
- 將Javascript放在父頁面或.js文件中(我會認爲這是最後一招,但我參考服務器控制使用
<#%=ControlId.ClientID %>
。如果Javascript未包含在UserCo中,則不能執行此操作ntrol我不想設置控件ClientIdMode
到static
)
我真的想找到一種方法來保持的Javascript語言,我的用戶以這樣一種方式,它是在客戶端訪問當UpdatePanel通過使用UpdatePanel將控件的.Visible
屬性設置爲true
時。
你有沒有想出一個解決這個?我現在正在遇到一模一樣的問題 –