ViewState,div标签

时间:2009-07-22 01:47:39

标签: c# .net html

我在页面上有几个动态的Div标签,即根据某些标准,它们对用户可见或不可见。我想将它们添加到页面的视图状态,以便在回发后它们不再被隐藏,我该怎么做?

3 个答案:

答案 0 :(得分:4)

如果您要使用viewstate路径,我只会使用ASP.NET panels而不是div。它们呈现为div,所以它们正是你想要的。

答案 1 :(得分:1)

ViewState["divAVisible"] = true;
ViewState["divBVisible"] = false;

然后在Page_Load:

if (ViewState.ContainsKey("divAVisible"))
    divA.Visible = ViewState["divAvisible"]
...

divA被定义为Panel

或者,您可以输入类似的内容:

<div id="divA" runat="server">...</div>

在你的aspx中然后它将成为VS生成的HtmlControl的一个实例。

答案 2 :(得分:1)

根据我对该问题的理解,您似乎希望将DIV标记为服务器控件。所以使用runat =“server”声明你的div。

<div id="testpanel" runat="server"></div>

或者你也可以使用asp:panel。然后,当您点击页面的Page_Load时,您可以测试回发并相应地更改可见性。

 protected void Page_Load(object sender, EventArgs e)
 {
    if (Page.IsPostBack)
    {
        testpanel.Visible = true;
    }
 }

但话又说回来,如果你不希望它作为服务器控件,那么这个解决方案将不起作用。