C# 我们可以从母版页访问内容页控件吗?
我有一个母版页,用于几个内容页。 在每个内容页上都有一个用户控件。 我想在单击母版页中的按钮时调用该控件的一个方法 可能吗 我想在单击母版页上的按钮时调用该控件的方法。可能吗 是和否。如果您正在谈论客户端,那么是的,您可以通过JavaScript调用控件上的方法。如果你说的是服务器端,那么不是C# 我们可以从母版页访问内容页控件吗?,c#,asp.net,controls,C#,Asp.net,Controls,我有一个母版页,用于几个内容页。 在每个内容页上都有一个用户控件。 我想在单击母版页中的按钮时调用该控件的一个方法 可能吗 我想在单击母版页上的按钮时调用该控件的方法。可能吗 是和否。如果您正在谈论客户端,那么是的,您可以通过JavaScript调用控件上的方法。如果你说的是服务器端,那么不是 然而,我不得不问,如果控件在每个内容页上都可用,那么它是存在于母版页面上的一个非常好的候选控件是吗?如果在特定内容页中不需要它,可以将其隐藏。您可以这样做来访问内容页控件 protected void
然而,我不得不问,如果控件在每个内容页上都可用,那么它是存在于母版页面上的一个非常好的候选控件是吗?如果在特定内容页中不需要它,可以将其隐藏。您可以这样做来访问内容页控件
protected void Button1_Click(object sender, EventArgs e)
{
UserControl_Type uc1 =
(UserControl_Type)ContentPlaceHolder1.FindControl("UserControlId");
if (uc1 != null)
{
uc1.Method();
}
}
我认为您应该将UserControl移动到母版页,并在母版页cs文件中的按钮单击中访问UserControl方法。如果有任何内容页不想显示此用户控件,则可以执行以下操作
使用内容占位符:
在母版页中:
加:
在不想显示UserControl的内容页中,添加以下标记,并从希望UserControl显示的所有内容页中删除此标记:
<asp:Content ID="UcControlContent1"
ContentPlaceHolderID="UcControlPlaceHolder" Runat="Server">
</asp:Content>
如果每个内容控件都有相同的用户控件,那么可能应该将其移动到母版页?将此控件添加到母版页中的新contentplaceholder中,并在任何不想显示的内容页中覆盖此控件。这是一个易于维护和更好的选项。如果您要在每个控件中维护按钮的单击事件,为什么不在用户控件中也添加该控件呢?这有什么问题。(UserControl+button=ContentPage)
是的,但为时已晚,我有70个页面使用此母版页,所以很难。。。我怎么能用javascript来做呢?@Rupali,我想你误解了我的意思。如果您试图在客户端执行某个操作,那么您可以访问它,因为在客户端执行时,它都是一个页面。如果您正试图在服务器端执行某些操作,那么只需全力以赴进行更改。您将在很短的时间内完成,并且可能比为您处理此问题所需的时间要短。
<asp:Content ID="UcControlContent1"
ContentPlaceHolderID="UcControlPlaceHolder" Runat="Server">
</asp:Content>