更改用户控件中标签文本的最佳方法是什么?

Chr*_*lps 4 vb.net asp.net

我有一个带有标签的用户控件.我有一个主页面,我已经删除了用户控件.我有其他.aspx页面使用具有用户控件的母版页.

从.aspx页面更改用户控件上该标签文本的最佳方法是什么?

And*_*are 5

您有几个选项,但最好的方法是在用户控件上创建一个方法,该方法包装标签的text属性,并允许用户传入一个值,该值又分配给标签的Text属性.

然后在您的母版页上创建另一个接受字符串参数的方法,并将该值传递给用户控件上的方法.然后,您可以从Web表单在主页面上调用此方法.

因此,在您的用户控件上添加如下方法:

Public Sub SetDisplayText(ByVal displayText As String)
    SomeLabel.Text = displayText
End Sub
Run Code Online (Sandbox Code Playgroud)

然后像这样在你的母版页中添加一个方法:

Public Sub SetDisplayText(ByVal displayText As String)
    SomeUserControl.SetDisplayText(displayText)
End Sub
Run Code Online (Sandbox Code Playgroud)

现在,您的Web表单可以调用SetDisplayText母版页上的方法来设置用户控件标签上的文本:

Dim masterPage As SomeMasterPage = TryCast(Me.Master, SomeMasterPage)

If masterPage IsNot Nothing Then
    masterPage.SetDisplayText("foo")
End If
Run Code Online (Sandbox Code Playgroud)

这可能感觉有点过分,但这种抽象是减少组件之间耦合所必需的.这种方法还为您提供了很大的灵活性,因为可以在不影响其他组件的情况下进行更改.例如,如果重命名标签控件,则无需更改设置其文本值的Web表单,因为Web表单不会知道(或关心)标签的名称,只知道如何设置其显示值.