繁体   English   中英

asp.net vb用户控件在调用页面上引发一个事件

[英]asp.net vb user control raising an event on the calling page

我正在尝试了解用户控件。 我创建了一个具有文本框和按钮的用户控件。 我想能够做的是当我单击用户控件中的按钮时,在aspx页面中填充标签。 我知道我可以在页面上有一个按钮,它使用用户控件上的一些属性来获取该信息..但我想知道如何使用用户控件的按钮来实现它...原因是按钮只是一个例子..一个学习工具。 如果我可以使这个工作,我可能会把东西放在用户控件中,可能需要这种传递信息。 无论如何..我发现了一些c#例子,我试图像vb一样工作..但是一旦开始进入代表和事件......好吧..它让我转向这篇文章。

无论如何..希望有人可以伸出援助之手。

看看本教程是否有帮助。 这样做的最好方法绝对是连接一个事件,这并不像你想象的那么难。 基础是:

1.在控件类中定义一个事件:

Public Event MyEvent as System.EventHandler

2.在控件类的子函数或函数中引发事件:

RaiseEvent MyEvent(Me, New EventArgs())

3.在包含您的控件的页面上处理事件:

Protected Sub MyControl_MyEvent(ByVal sender As Object, ByVal e As EventArgs) Handles MyControl.MyEvent
    'Do stuff here
End Sub

我相信你想要做的就是让你的UserControl引发一个事件。 这篇MSDN文章解释了如何引发事件并有VB示例。 然后,您的页面可以订阅UserControl引发的事件,并设置您需要设置的任何值。 最好将一些UserControl字段(即TextBoxes等)公开为公共属性,以便可以从订阅的控件中访问它们。

问题是,如果你让usercontrol依赖于它的父页面,它就不再是可移植的,并且你已经打败了它首先成为用户控件的目的。

这可能是您在代理中运行的原因以及在任何示例中的诸多原因 - 人们试图通过允许usercontrol调用传入方法来删除父页面上的依赖性,而不是直接在父页面中设置标签。

如果这只是为了练习,你最好按下父页面上的按钮在usercontrol中设置标签,而不是相反。 你现在这样做的方式并不是一个好的设计,应该避免在实际应用中使用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM