我正在尝试在内容页面的主页面中设置标签,而不是使用FindControl。所以,在母版页中我声明了:
public partial class MainMasterPage : System.Web.UI.MasterPage
{
public string UserOfficeLabel
{
get { return lblUserOffice.Text; }
set { lblUserOffice.Text = value; }
}
public string OfficeLocationLabel
{
get { return lblOfficeLocation.Text; }
set { lblOfficeLocation.Text = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
....
}
}
“UserOfficeLabel”和“OfficeLocationLabel”是母版页上的标签。然后在内容页面(.aspx)中,我在“Page”指令下添加了以下指令:
<%@ MasterType VirtualPath="~/Main/MainMasterPage.master" %>
在后面的conent页面代码(.cs文件)中,我尝试访问/设置标签:
Master.UserOfficeLabel = ...
但是UserOfficeLabel不是Master的选项(VS Intellisense不会将其列为选项)。当我添加它时,它说“MainMasterPage.UserOfficeLabel无法访问其保护级别”
答案 0 :(得分:0)
我想你可以在这里找到你想要的东西: http://odetocode.com/blogs/scott/archive/2005/07/16/mastertype-in-asp-net-2-0.aspx。 理论上,当你编译时,你应该在部分类
中看到下面的代码 Public Shadows ReadOnly Property Master() As otc
Get
Return CType(MyBase.Master,otcMaster)
End Get
End Property
通过声明变量
,我做了类似于你正在尝试的事情Dim LocalMasterPageRef As MyMasterPageName
LocalMasterPageRef = CType(Me.Master, MyMasterPageName)
...
LocalMasterPageRef.xxxx
希望它有所帮助。