如何从内容页面访问母版页中的用户控件?

时间:2008-12-19 22:05:38

标签: c# asp.net user-controls master-pages

假设我在母版页中有一个标题用户控件,并且想要根据母版页内加载的内容页面来更改用户控件的属性。我怎么能这样做?

谢谢!

4 个答案:

答案 0 :(得分:13)

您可以使用两种方法。第一种是使用Page.Master.FindControl('controlID')。然后,您可以将其强制转换为用户控件的类型。第二种方法是在您的aspx页面中添加<%@ MasterType VirtualPath=""> OR <%@ MasterType TypeName=""%>标记。在VirtualPath中添加主页的虚拟路径或TypeName中的类。然后,您可以使用intellisense访问所有内容。

答案 1 :(得分:5)

首先在母版页中找到用户控件,如下所示。然后找到您需要访问其属性的控件。

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;

希望这有帮助。

答案 2 :(得分:4)

还有另外一种方法,那就是在母版页上创建一个暴露用户控件的公共属性。

答案 3 :(得分:1)

使用公共财产可行。在内容页面Form Load方法中,您可以执行以下操作(VB):

Dim myMaster as MyMasterPage = CType(Page.Master, MyMasterPage)
myMaster.MyUserControl.Text = "Hello!"