4

我正在尝试从内容页面在母版页中设置标签,而不是使用 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)中,我在“页面”指令下添加了以下指令:

<%@ MasterType VirtualPath="~/Main/MainMasterPage.master" %>

在内容页面后面的代码(.cs 文件)中,我尝试访问/设置标签:

Master.UserOfficeLabel = ...

但是 UserOfficeLabel 不是 Master 的选项(VS Intellisense 没有将其列为选项)。当我无论如何添加它时,它会说“MainMasterPage.UserOfficeLabel 无法访问其保护级别”

4

1 回答 1

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 

希望能帮助到你。

于 2012-05-10T06:30:50.190 回答