我已将没有母版页的应用程序迁移到使用母版页的应用程序。我从每个页面中删除了对用户控件的引用,并将它们放在master中,以便可以在所有页面中使用它们。在后面的代码中,我不再能够访问每个用户控件的属性。下面是旧代码以及我尝试更新它的内容,但在新代码中,尝试访问用户控件的title属性时出错。任何帮助都会很棒!
旧代码:
Me.ucNavBar.Title = "Add New Product"
新守则:
Master.FindControl("ucNavBar").Title = "Add New Product"
新代码出错:
'Title' is not a member of 'System.Web.UI.Control'.
答案 0 :(得分:3)
将其投射到您的特定类型以访问标题属性:
CType(Master.FindControl("ucNavBar"), UserControl).Title = "Add New Product"
答案 1 :(得分:0)
以下是否有帮助?
包含在.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"
仅供参考,我没有测试此代码,但希望它有所帮助...