【问题标题】:Why is RenderControl called when a Control's Visible property is set to false?为什么当控件的 Visible 属性设置为 false 时会调用 RenderControl?
【发布时间】:2011-11-17 17:12:06
【问题描述】:

我在我的 Control 的重写 RenderControl 方法上设置了一个断点,并且断点被命中,但在 Visual Studio 中,我可以看到 this.Visiblefalse

Visible 属性的文档中说:

如果此属性为 false,则不呈现服务器控件。

这并不一定意味着RenderControl 方法没有被调用,但这是一个很大的暗示,它不应该这样做。如果Visible 为假,我是否应该手动跳出该方法?这在任何地方都有记录吗?

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    msdn

    在渲染之前,会保存页面和所有控件的视图状态。 在渲染阶段,页面为每个页面调用 Render 方法 控件,提供一个文本编写器,将其输出写入 页面的 Response 属性的 OutputStream 对象。

    从下图中可以看出,RenderControl 是渲染过程的一部分:

    所以它调用方法RenderControl 而不管Visible 属性值。根据Visible 属性输出空字符串或任何内容是您的责任。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-04
      • 2014-09-14
      • 1970-01-01
      • 2019-12-31
      • 2014-06-20
      相关资源
      最近更新 更多