我已经读过用户控件的组成控件只能由用户控件访问,因此托管此用户控件的网页无法接收事件,调用方法或设置这些包含控件的属性。
但我不确定上述说法是否属实,因为我能够访问(来自托管网页)ClickButton.Click事件(假设WebUserControl1包含ClickButton控件):
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Button ClickButton = (Button)WebUserControl1.Controls[0];
ClickButton.Click += someClickHandler;
}
感谢名单
答案 0 :(得分:1)
您可以公开公开用户控件的属性(即设置),控件和事件,这意味着您不必在usercontrol中找到控件。
答案 1 :(得分:1)
整个页面是一个控件树。无论该控件的父级是什么,您都可以“浏览”此树。例如,从用户控件内部,您可以转到父级,可以是另一个控件,然后是页面,然后是主页,依此类推。
所以是的,你是对的,它不是隐藏的,你不能访问它,但它也没有发布。以类似的方式使用反射,你可以调用私有方法,否则你不能。使用某些工具,您可以访问和更改已编译的代码;所以没有什么事情真的遥不可及。
这些边界被设置并用于最小化复杂性,而不是作为无法跨越的绝对墙。