asp.net 包含动态创建控件的容器如果要切换显示/隐藏不要用 Visible 属性

来源:互联网 发布:黑河学院网络管理系统 编辑:程序博客网 时间:2024/05/17 01:47
asp.net 包含动态创建控件的容器如果要切换显示/隐藏不要用 Visible 属性

就是不用 XXX.Visible = false;  // true

因为这样该容器及其子控件会彻底的从页面上消失,不参与 Render.
那么下次 postback 的时候里面动态创建的控件将无从恢复已经输入的数据。(控件能维持数据的机制是实现 IPostBackDataHandler 接口)

我现在的做法是在容器外面再套一个 Panel
Panel 在 Render 的时候会绘制为  <div></div>

所以我们只要在显示/隐藏的代码里如下设定即可:

xxxPanel.Style["display"] = ""; 


xxxPanel.Style["display"] = "none";