我有一个母版页,在那里我有一个链接按钮。在其中一个内容页面中,我需要隐藏链接按钮,并替换为图像按钮。图像按钮的单击事件处理程序应该与母版页中链接按钮的单击事件执行相同的操作。那么,有没有办法从内容页中的图像按钮单击事件处理程序调用母版页链接按钮单击事件处理程序呢?
我已经研究过了,似乎有很多情况下母版页想要调用内容页中的事件处理程序…
任何inout都将受到高度赞赏。
谢谢
发布于 2011-05-18 09:14:25
在母版页的代码中,将事件处理程序上的protected关键字替换为public。
public void LinkButton1_Click(object sender, EventArgs e)
{
//Do Stuff Here
}在内容页中使用Master Type指令
<%@ MasterType VirtualPath="~/masters/SourcePage.master"" %> 在内容页面的后台代码中,调用Master事件处理程序,如下所示
protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
{
this.Master.LinkButton1_Click(sender, e);
}注意,代码是C#。
我正在考虑更直接地调用母版页事件处理程序
发布于 2011-05-18 08:45:32
还有@ Master指令(MSDN Article)。此方法提供了一种方法,用于在从Master属性访问母版页时创建对ASP.NET母版页的强类型引用。
如上所述,结果是强类型的,不需要强制转换。
示例用法:
<%@ MasterType VirtualPath="~/masters/SourcePage.master"" %>使用此指令实际上会生成与@Scott实现相同的代码,但不要求您知道母版页的类型。
然后你就可以开始使用你的母版页了,比如说:
Master.Title = "My Page Title";您也可以通过这种方式从主服务器调用事件。使用Master.FindControl查找所需的主控件。
find控件示例:
HtmlAnchor btnMyImageButton = (HtmlAnchor)Master.FindControl("btnMyImageButton");但我建议使用ImageButton的OnClick属性,并在母版页上将其设置为可公开访问的空/子对象。然后简单地调用void/Sub,就像这样:
Master.ImageButtonClick();发布于 2011-05-18 03:01:29
如果母版页是MyMaster,则创建如下属性:
Public Shadows ReadOnly Property Master() As MyMaster
Get
Return CType(MyBase.Master, MyMaster)
End Get
End Property然后,无论您想在母版页中访问什么,请确保它是公共的,并且您可以通过以下方式访问它:
Master.xxxxhttps://stackoverflow.com/questions/6035730
复制相似问题