本文討論使用者控制項返回事件的方法。
假定使用者控制項(usercontrol.ascx)中包含按鈕控制項abutton,希望實現按abutton按鈕時,包含該使用者控制項的頁面可以接收到事件。為此,在使用者控制項和頁面的**中分別作了處理。
usercontrol.ascx.cs中的處理:
1. 定義public的事件委託,如clickeventhandler;
2. 在usercontrol類中宣告事件,如click;
3. 在usercontrol類中定義引發事件的方法,如onclick()方法;
4. 在usercontrol類的相關方法中呼叫引發事件的方法,如在button_click()中呼叫onclick()。
核心**示意如下:
public
delegate
void
clickeventhandler(
object
sender, eventargs e);
public
class
myusercontrol : system.web.ui.usercontrol
private
void
abutton_click(
object
sender, system.eventargs e)}
包含usercontrol的頁面cs檔案中的處理:
1. initializecomponent()中增加事件處理程式,採用findcontrol方法找到usercontrol;
2. 定義事件處理方法,在該方法中處理usercontrol的事件,如usercontrol_clicked()。
核心**示意如下:
private
void
initializecomponent()
private
void
usercontrol_clicked(
object
sender, system.eventargs e)
總結一下,其實就是將事件機制利用手工程式設計的方法加進去:加入一般控制項ide自動生成的**。順便說一下,c#的事件機制實現了obeserver pattern,除了ui還可以用於業務層,能有效地降低物件間的耦合度,像usercontrol那樣,根本無需知道包含它的頁面物件是誰!
GridView控制項 事件詳解
gridview控制項 事件詳解 rowcommand 在 gridview 控制項中單擊某個按鈕時發生。此事件通常用於在該控制項中單擊某個按鈕時執行某項任務。pageindexchanging 在單擊頁導航按鈕時發生,但在 gridview 控制項執行分頁操作之前。此事件通常用於取消分頁操作。pa...
GridView控制項 事件詳解
在單擊頁導航按鈕時發生,但在 gridview 控制項執行分頁操作之前。此事件通常用於取消分頁操作。pageindexchanged 在單擊頁導航按鈕時發生,但在 gridview 控制項執行分頁操作之後。此事件通常用於在使用者定位到該控制項中不同的頁之後需要執行某項任務時。selectedinde...
GridView控制項事件詳解
gridview 控制項的事件及其說明 01.init 控制項初始化時發生 02.load 控制項載入到 page 物件中時發生 03.prerender 載入物件之後 呈現之前發生 04.databinding gridview 控制項資料繫結之前發生 05.databound gridview ...