asp.net 包含动态创建控件的容器如果要切换显示/隐藏不要用 Visible 属性
就是不用 XXX.Visible = false; // true
因为这样该容器及其子控件会彻底的从页面上消失,不参与 Render.
那么下次 postback 的时候里面动态创建的控件将无从恢复已经输入的数据。(控件能维持数据的机制是实现 IPostBackDataHandler 接口)
我现在的做法是在容器外面再套一个 Panel
Panel 在 Render 的时候会绘制为 <div></div>
所以我们只要在显示/隐藏的代码里如下设定即可:
xxxPanel.Style["display"] = "";
或
xxxPanel.Style["display"] = "none";
就是不用 XXX.Visible = false; // true
因为这样该容器及其子控件会彻底的从页面上消失,不参与 Render.
那么下次 postback 的时候里面动态创建的控件将无从恢复已经输入的数据。(控件能维持数据的机制是实现 IPostBackDataHandler 接口)
我现在的做法是在容器外面再套一个 Panel
Panel 在 Render 的时候会绘制为 <div></div>
所以我们只要在显示/隐藏的代码里如下设定即可:
xxxPanel.Style["display"] = "";
或
xxxPanel.Style["display"] = "none";