在 aspx 页面的代码隐藏中从母版页访问用户控件

Accessing usercontrols from the master page in the code behind of aspx page

我已将没有母版页的应用程序迁移到使用母版页的应用程序。我从每个页面中删除了对用户控件的引用,并将它们放在母版中,以便它们可以在所有页面中使用。在后面的代码中,我无法再访问每个用户控件的属性。下面是旧代码,我也尝试更新它,但在新代码中,尝试访问用户控件的标题 属性 时出错。任何帮助都会很棒!

旧代码:

Me.ucNavBar.Title = "Add New Product"

新代码:

Master.FindControl("ucNavBar").Title = "Add New Product"

新代码错误:

'Title' is not a member of 'System.Web.UI.Control'.

将其转换为您的特定类型以获得标题 属性:

CType(Master.FindControl("ucNavBar"), UserControl).Title = "Add New Product"

以下是否有帮助?

包含在 .master 文件中:

    <%@ Register TagPrefix="uc" TagName="Navbar" Src="Navbar.ascx" %>

以及您需要它的地方:

    <uc:Navbar runat="server" ID="Navbar" />

并直接在master.vb中访问:

   Navbar.Title = "Add new product"

并在使用母版页的页面中访问它,将以下内容添加到 .master.vb:

   Public Property NavbarTitle as String
   Get
     return Navbar.Title
   Set(ByVal value As String)
     Navbar.Title = value
   End Property

.aspx:

   <%@ Reference Control="XXXXX.master" %>

.aspx.vb

    Dim XXXXMaster As XXXXMaster= CType(Me.Page.Master, XXXXMaster)
    CType(XXXXMaster.FindControl("ucNavBar"), UserControl).Title = "Add New Product"

    Dim XXXXMaster As XXXXMaster= CType(Me.Page.Master, XXXXMaster)
    XXXXMaster.NavbarTitle = "Add New Product"

仅供参考,我没有测试这段代码,但希望它能有所帮助...