无论visibility属性是true还是false,都会呈现自定义控件(ascx)。
似乎当某些控件将其可见性设置为false时,它们不会被渲染,但是当我将ascx控件设置为从包含它的aspx页面隐藏时,代码仍会通过ascx的代码绑定,尽管它被标记为不可见。
如果可见性标记为false,有没有办法强制我的ascx不呈现?
这种行为是否正常?
答案 0 :(得分:3)
无论控件是否可见,都始终执行后面的代码。
考虑默认情况下隐藏控件但在执行页面期间通过代码使控件可见的情况。如果控件的构造函数和Load事件因为被隐藏而被抑制,则它将无法正确初始化。如果在控件可见的时刻执行了事件,则它们将在页面循环中无序执行。
因此,页面中所有控件的代码必须始终运行,因为在渲染时间时控件可能是可见的。
答案 1 :(得分:3)
如果可见性设置为false,则ascx仍会经历页面生命周期。不会生成任何HTML,因此在这方面它不会被渲染。 Load事件会运行,但预渲染可能不会。