假设我有一个位于主页中的标题用户控件,并且希望根据加载到主页内部的内容页来更改用户控件的属性。我该如何处理?
谢谢!
谢谢!
你可以使用两种方法。第一种是使用Page.Master.FindControl('controlID')
。然后你可以将其转换为你的用户控件类型。第二种方法是在aspx页面中添加一个<%@ MasterType VirtualPath="">
或<%@ MasterType TypeName=""%>
标记。在VirtualPath
中添加主页面的虚拟路径或在TypeName
中添加类名。你随后可以通过智能感知访问所有内容。
首先在母版页中找到用户控件,如下所示。然后找到需要访问其属性的控件。
UserControl uch = Page.Master.FindControl("ucHeader1") as UserControl;
PlaceHolder phProxylist= ucHeader1.FindControl("phProxy") as PlaceHolder;
DropDownList ddlproxylist1 = ucHeader1.FindControl("ddlProxyList") as DropDownList;
phProxylist.Visible = false;
还有一种方法,就是在母版页上创建一个公共属性,以公开用户控件。
使用公共属性会起作用。在内容页的FormLoad方法中,您可以这样做(VB):
Dim myMaster as MyMasterPage = CType(Page.Master, MyMasterPage)
myMaster.MyUserControl.Text = "Hello!"