【发布时间】:2010-12-11 17:47:08
【问题描述】:
无论可见性属性是真还是假,是否都会呈现自定义控件 (ascx)。
似乎当某些控件的可见性设置为 false 时,它们不会被渲染,但是当我将 ascx 控件设置为对包含它的 aspx 页面隐藏时,代码仍然通过 ascx 的代码绑定运行,尽管它被标记为不可见。
如果可见性标记为 false,是否有办法强制我的 ascx 不呈现?
这种行为正常吗?
【问题讨论】:
标签: asp.net visibility ascx
无论可见性属性是真还是假,是否都会呈现自定义控件 (ascx)。
似乎当某些控件的可见性设置为 false 时,它们不会被渲染,但是当我将 ascx 控件设置为对包含它的 aspx 页面隐藏时,代码仍然通过 ascx 的代码绑定运行,尽管它被标记为不可见。
如果可见性标记为 false,是否有办法强制我的 ascx 不呈现?
这种行为正常吗?
【问题讨论】:
标签: asp.net visibility ascx
无论控件是否可见,总是执行后面的代码。
考虑一个控件默认隐藏但在页面执行期间由代码可见的情况。如果控件的构造函数和 Load 事件因为它被隐藏而被抑制,则它不会被正确初始化。如果事件在控件可见时执行,它们将在页面循环中无序执行。
因此,页面中所有控件背后的代码必须始终运行,因为在呈现时间时控件可能是可见的。
【讨论】:
如果可见性设置为 false,ascx 仍会经历页面生命周期。不会生成 HTML,因此在这方面它不会被渲染。 Load 事件会运行,但预渲染可能不会。
【讨论】: