在母版页中查找控件

时间:2012-05-09 22:47:33

标签: asp.net master-pages

我正在尝试在内容页面的主页面中设置标签,而不是使用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无法访问其保护级别”

1 个答案:

答案 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 

希望它有所帮助。