【问题标题】:What Happens When You Set A Parent Control's Enabled Property?设置父控件的 Enabled 属性时会发生什么?
【发布时间】:2010-10-03 20:41:50
【问题描述】:

我有一个自定义控件容器,每个容器中有 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 属性时,实际会发生什么?我的假设是它将这种状态传播到它的所有子代,但看来我错了。

谢谢!

【问题讨论】:

    标签: .net asp.net vb.net web-controls


    【解决方案1】:

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

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

    If NamingContainer.Enabled Then
    

    而不是

    If Me.Enabled Then
    

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

    【讨论】:

    • 你的答案很长吗? ;) 具体来说:然后,告诉我的文本框等。被禁用?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多