2009-04-30 58 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