我的每一个都具有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属性实际上会发生什么?我的假设是,它传播的是状态下降到其所有的孩子,但现在看来,我错了。

谢谢!

有帮助吗?

解决方案

简短的回答是,你的假设其实是错误的。

如果你喜欢(并延伸的WebControl,你的容器具有中用runat =服务器),可以使用

If NamingContainer.Enabled Then

代替

If Me.Enabled Then

但在ASP特性不会自动向下传播的树

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top