ASP.NET用户控件可见性统制

ASP.NET用户控件可见性控制要达到的目的很简单:编写一个用户控件,页面加载时隐藏,当某个radioButton点击时

ASP.NET用户控件可见性控制

        要达到的目的很简单:编写一个用户控件,页面加载时隐藏,当某个radioButton点击时,显示用户控件。但用起来却发现不是那么简单。


        错误方法一

        首先想到的是最常用的方法,设置其Visible属性为false:

        并且用户控件也并没有隐藏:
            ASP.NET用户控件可见性统制

        如果希望打开页面时不显示,不要使用visible=false,否则会脚本会找不到控件。


        错误方法二

       界面加载时隐藏:

        样式属性

        即一个div下包含三个平行的span,再来看一下div和span所带有的样式属性:

            ASP.NET用户控件可见性统制            ASP.NET用户控件可见性统制

        可见一是用户控件在客户端解析后没有ClientID只能算是一个匿名div,而且没有可控制的display属性。


        解决方案

        那怎么解决用户控件的可见性问题?答案是Panel,把用户控件放到Panel控件中,通过控制Panel的可见性间接控制用户控件的可见性。

        隐藏用户控件代码:

        点击答题记录时:

            ASP.NET用户控件可见性统制

          DOM结构

        解析的客户端代码:


        Panel控件解析后用后ClientID及可控制display样式属性,所以能解决可见性的问题。