0

我有一个自定义控件容器,每个控件中有 2 个控件。启用时显示一个(即文本框或复选框),禁用时显示一个标签。

我已经Render像这样超载了:

    Protected Overrides Sub Render(ByVal writer As System.Web.UI.HtmlTextWriter)
        If Me.Enabled Then
            _item.RenderControl(writer)
        Else
            _display_text.RenderControl(writer)
        End If
    End Sub

但是,当我将容器(即表)设置为 时Enabled = False,我的预期功能不会发生。相反,我的文本框和复选框是灰色的。

当您设置父母的Enabled财产时,实际上会发生什么?我的假设是它将这种状态传播到它的所有孩子,但看来我错了。

谢谢!

4

1 回答 1

0

简短的回答是您的假设实际上是错误的。

如果你喜欢(并且正在扩展 WebControl,并且你的容器有一个 runat=server),你可以使用

If NamingContainer.Enabled Then

代替

If Me.Enabled Then

但是属性不会在 asp 中自动沿树向下传播。

于 2009-01-27T20:53:12.617 回答