我会在您的母版页中公开一个公共属性,ShowWorkText
例如String
. 此属性设置(或读取)文字的Text
. 它搜索Placeholder
可直接访问的控件。然后您的代码更具可读性和可维护性。如果您决定Literal
用TextBox
例如替换它也更安全。您必须将页面的Master
属性转换为您的主人的实际类型才能访问该属性。
由于文字位于 a 中UserControl
,因此您应该使用相同的方法在此处公开属性。然后主人访问它而不是页面。
在主(类型Site
)中:
Public Property ShowWorkText As String
Get
Dim navigationControl As Navigation = Me.placeHolderNav.Controls.OfType(Of Navigation)().FirstOrDefault()
If navigationControl IsNot Nothing Then
Return navigationControl.ShowWorkText
End If
Return Nothing
End Get
Set(value As String)
Dim navigationControl As Navigation = Me.placeHolderNav.Controls.OfType(Of Navigation)().FirstOrDefault()
If navigationControl IsNot Nothing Then
navigationControl.ShowWorkText = value
End If
End Set
End Property
在 UserControl 中(类型Navigation
为LiteralShowWork
litaral):
Public Class Navigation
Inherits System.Web.UI.UserControl
Public Property ShowWorkText As String
Get
Return LiteralShowWork.Text
End Get
Set(value As String)
LiteralShowWork.Text = value
End Set
End Property
End Class
在要设置文本的页面中(如前所述Site
是主人的类型):
Dim site As Site = TryCast(Me.Master, Site)
If site IsNot Nothing Then
site.ShowWorkText = "hello"
End If