我们可以从母版页访问内容页面控件吗?

时间:2012-12-27 03:52:47

标签: c# asp.net controls

我有一个主页面,用于多个内容页面。 在每个内容页面上都有一个用户控件。 我想在点击主页面中的按钮时调用该控件的方法。 有可能吗?

先谢谢。

2 个答案:

答案 0 :(得分:2)

您可以执行此操作来访问内容页面控件

protected void Button1_Click(object sender, EventArgs e)
{
    UserControl_Type uc1 = 
    (UserControl_Type)ContentPlaceHolder1.FindControl("UserControlId");
    if (uc1 != null)
    {
        uc1.Method();
    }
}

我认为您应该将UserControl移动到母版页并在主页cs文件中的按钮单击中访问usercontrol方法。如果您不想显示此用户控件的任何内容页面,则可以执行以下操作

使用内容占位符:

在母版页中: 添加:

<asp:contentplaceholder id="UcControlPlaceHolder" runat="server">
<!-- User control here -->
</asp:contentplaceholder>

想要显示UserControl的内容页面中添加以下标记,并从您希望UserControl显示的所有内容页面中删除此标记:

<asp:Content ID="UcControlContent1" 
ContentPlaceHolderID="UcControlPlaceHolder" Runat="Server">    
</asp:Content>

答案 1 :(得分:1)

  

我想在主页上的按钮的点击上调用该控件的方法。可以吗???

是和否。如果您正在谈论客户端然后是,您可以通过JavaScript调用控件上的方法。如果你正在谈论服务器端,那么没有。


但是,我不得不问,如果控件在每个内容页面上都可用,那么它是页面上现有的非常好的候选对象是吗?如果您在特定内容页面中不需要它,则可以隐藏它。