ScriptManager.RegisterClientScriptBlock的疑問


  ScriptManager.RegisterClientScriptBlock:

      MSDN中對這個方法的解釋為:

ScriptManager 控件注冊一個客戶端腳本塊,以便和 UpdatePanel 控件中的某個控件一起使用,然后將該腳本塊添加到頁面中。

      大概的意思不難理解。下面看這段代碼:

頁面上有一個updatePanel,里面放了一個button和一個ConfirmButtonExtender控件。

並將button的ID付給 ConfirmButtonExtender的TargetControlID。

 

后台代碼:

 

 

可以看到alert('已經確認!') 是在Button2_Click中"注冊"的。

效果:  點擊button彈出確認窗口.

點擊button彈出確認窗口

點確認后Button的Text變為“按鈕已經改變”,點取消什么也不發生。

奇怪的是無論你把 Button2.Text這句放在ScriptManager這句前面還是后面都是點確認后Button的Text才會改變,打個斷點調試下也證明Button2_Click事件是在確認后才觸發的。

問題就是:

1.為什么ScriptManager這句要放在Button2_Click事件中呢?

2.同樣的一個單擊事件,用在Page_Load中加入Button2.Attribute.Add("onclick","<script>alert('已經確認!')</script>");的方法為什么就不行呢?

-----------------------------------------------------分割線-------------------------------------------------

基本上講一但一個控件被扔進了UpdatePanel中 給它綁定一個客戶端Script代碼就不行用普通的方式了。

我們將上面的代碼簡化下:

然后在后台中寫上:

運行后照樣是提示javascript出錯。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM