我在我的网站上有一个母版页,并对母版页有一些控制权。 我想在内容页面上处理母版页控件事件。
我该怎么做......?
即使我使用这样的属性进行下拉控制
public DropDownList propertymastercontrol
{
get
{
return cmbVendor; //drop down id
}
}
并在内容页面上给出了主页的引用,如下所示......
<%@ MasterType VirtualPath ="~/MasterPage.master" %>
仍然无法获取内容page_load事件的任何控制事件..
protected void Page_Load(object sender, EventArgs e)
{
Master.
}
可能是什么问题..?
答案 0 :(得分:2)
我不确定C#,但在VB.NET中我已经完成了以下四个步骤:
<%@ MasterType VirtualPath="~/master.Master" %>
更新:
从您的示例代码中,我可以看到您没有在MasterPage中引发事件(您可以回复内容页面)。我打算给出一个例子,但它与这篇帖子Pass MasterPage ImageButton event to content Page几乎完全相同,这个帖子也已经链接到了另一个SO用户。
答案 1 :(得分:0)
我假设page_Load事件位于代码隐藏部分。您必须在那里声明母版页文件以便能够提取母版页的内容。
将它放在on preInit:
this.MasterPageFile = "~/masterPage.master"; //change this to where your master page resides.
答案 2 :(得分:0)
看看我的这个问题,非常相似:
关键点,它的工作方式与常规.ASPX页面和UserControls相同。实际上,MasterPage成为内容页面的UserControl。
答案 3 :(得分:0)
快速而肮脏的方法是在母版页中找到控件并将其连接起来。你的Page_Load看起来像这样:
protected void Page_Load(object sender, EventArgs e)
{
DropDownList cmbVendor = (DropDownList)Master.FindControl("cmbVendor");
cmbVendor.TextChanged += new EventHandler(cmbVendor_TextChanged);
}
更简洁的方法是让MasterPage处理DropDown事件并引发它自己的事件。 Pass MasterPage ImageButton event to content Page接受的答案解释了如何执行此操作。