2015-07-21 94 views
0

我已经将没有母版页的应用程序迁移到使用母版页的应用程序。我从每个页面中删除了对用户控件的引用,并将它们放在主页中,以便它们可以在所有页面中使用。在后面的代码中,我不再能够访问每个用户控件的属性。下面是旧代码和我试图更新它的内容,但在新代码中,尝试访问用户控件的title属性时出现错误。任何帮助将是伟大的!从aspx页面后面的代码中的母版页访问usercontrols

旧代码:

Me.ucNavBar.Title = "Add New Product" 

新代码:

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

错误的新代码:

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

欣赏头! –

回答

3

将它转换为特定类型来访问Title属性:

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

仍然给我错误,'标题'不是'System.Web.UI.Control'的成员。 –

+0

将UserControl替换为您尝试将其转换为的控件类型(包含标题属性的控件)。 – N0Alias

0

以下有帮助吗?

纳入的.master文件:

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

,并在你需要它:

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

和访问它直接在master.vb:

Navbar.Title = "Add new product" 

和访问它在使用masterpage的页面中添加以下内容到.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" 

仅供参考,我没有测试此代码,但希望它可以帮助...

相关问题