ScriptManager.RegisterClientScriptBlock:
MSDN中對這個方法的解釋為:
向 ScriptManager 控件注冊一個客戶端腳本塊,以便和 UpdatePanel 控件中的某個控件一起使用,然后將該腳本塊添加到頁面中。
大概的意思不難理解。下面看這段代碼:
頁面上有一個updatePanel,里面放了一個button和一個ConfirmButtonExtender控件。
並將button的ID付給 ConfirmButtonExtender的TargetControlID。
后台代碼:
可以看到alert('已經確認!') 是在Button2_Click中"注冊"的。
效果: 點擊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出錯。
