2009-04-30 56 views
1

我有一個用戶控件,其中包含3個按鈕和7個文本框。我使用LoadControl在我的webform中動態調用usercontrol dynamiclly。Webform中的用戶控件事件

但在這裏我的問題是

1.How知道(用戶控制),該按鈕被點擊我的網頁上?

2.如何提出這些事件?

感謝 Kavitha

+0

解釋問題2,你想要一個代碼示例,如果是的話,用什麼語言(C#或VB)。 – Peter 2009-04-30 11:01:48

回答

0

您可以處理控件上的用戶控件的事件在自己的代碼隱藏文件,並提高對您的用戶控件事件又可以通過頁面的代碼隱藏文件得到處理。

0

最好的事情是用戶控件將控件封裝在它內部,然後爲它提出一個有意義的事件。例如,我編寫了一個日期選擇器用戶控件,該控件具有一個RadioButtonList,用於在「過去12個月」,「年至日期」或「自定義日期」之間進行選擇,還可以選擇開始日期和結束日期文本框。我的用戶控件暴露了單個DateChanged事件,如果進行了新的單選按鈕選擇,或者選擇了「Custom」選項並且輸入日期發生更改,則會引發該事件。

這樣,控件的用戶不需要知道控件的複雜實現。它只是訂閱DateChanged事件。

+0

我會說,將SelectedDate作爲屬性而不是引發事件會更容易。少得多的代碼 – 2009-04-30 11:07:06

1

在用戶控件(WebUserControl1.ascx)你可能有一個Button1的與就像這樣一個單擊處理程序:

Event Button1Click(ByVal button As Button) 

Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click 
    RaiseEvent Button1Click(sender) 
End Sub 

然後你就可以動態附加一個EventHandler這在父控制,像這樣:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load 
    Dim buttonControl As WebUserControl1 = LoadControl("WebUserControl1.ascx") 
    AddHandler buttonControl.Button1Click, AddressOf ControlEventHandler 
End Sub 

Private Sub ControlEventHandler(ByVal ctl As Control) 
    'We now have access to this control's properties 
End Sub