2009年3月20日

[KB]如果UpdatePanel有多個觸發來源,要怎麼將內容Post回去原觸發的控制項呢?

這個問題的原出處:

http://social.msdn.microsoft.com/Forums/zh-TW/236/thread/3ca2e625-d266-4990-a799-effcc8a9ec5b

我們首先在畫面上安排了三個TextBox,這三個TextBox擁有各自的PopupControlExtender,當使用者進入TextBox時,

就彈跳出一個UpdatePanel(這個UpdatePanel僅使用一個)供使用者選擇.

ASPX的程式碼如下:

畫面如下:

image

這裡遇到的問題是,當使用者進入某個TextBox時,就會跳出PopupControlID所設定的控制項(這裡是一個Panel, 內含有一個下拉選單)

image

當使用者選擇完畢後,會在DropDownList的SelectedIndexChanged事件中,把選擇的值送回使用者選擇的Textbox控制項中。

image

可是問題來了,要怎樣知道觸發的PopupControlExtender控制項是那個?

其實只要簡單三行,就可以搞定這個問題,先看答案:

可以透過AjaxControlToolkit.PopupControlExtender.GetProxyForCurrentPopup(Page)去得知目前頁面上觸發的PopupControlExtender是那個.

然後透過它去Commit值。

這是不是很簡單呢? 希望對您有所幫助.

沒有留言:

張貼留言

[Info] 如何快速找到Fix it?

  台灣微軟目前提供了很多的Fix it,讓許多消費者可以不用看完整篇KB,只要按下一個按鈕,就可以幫使用者自動修正許多問題. 現在在Vista以及Windows 7上,微軟也提供了SideBar工具,讓你用最短的時間找到能修正您的電腦的Fix it.(目前為英文版本) ...