C# 视图状态,div标记

C# 视图状态,div标记,c#,.net,html,C#,.net,Html,我在一个页面上有几个Div标签,它们是动态的,也就是说,根据某些标准,它们要么对用户可见,要么不可见。我想将它们添加到页面的视图状态,以便在回发时它们不会再次隐藏,我该如何做 ViewState["divAVisible"] = true; ViewState["divBVisible"] = false; 然后在页面加载中: if (ViewState.ContainsKey("divAVisible")) divA.Visible = ViewState["divAvisible"

我在一个页面上有几个Div标签,它们是动态的,也就是说,根据某些标准,它们要么对用户可见,要么不可见。我想将它们添加到页面的视图状态,以便在回发时它们不会再次隐藏,我该如何做

ViewState["divAVisible"] = true;
ViewState["divBVisible"] = false;
然后在页面加载中:

if (ViewState.ContainsKey("divAVisible"))
    divA.Visible = ViewState["divAvisible"]
...
女主角被定义为面板

或者,您可以放置以下内容:

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

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

根据我从问题中了解到的,您似乎希望将div标记为服务器控件。因此,使用runat=“server”声明您的div


但是,同样,如果您不想将其作为服务器控件,此解决方案将不起作用。

如果您选择viewstate路径,我将使用divs而不是divs。它们呈现为div,因此它们将完全符合您的要求。

+1我的想法完全正确,没有必要重新发明已经存在的东西。我尝试过:。。。我得到了一个解析器错误“服务器标记格式不正确”,这也与我在asp.NET2.0书中所说的相矛盾!这是我的实际div:我也尝试过,但当与runat=“server”组合时,每个“”或“”的组合似乎都会抛出错误。“我在网上读到一些类似的情况,大多数都是指类似的问题,请看一看,正如我首先说的,divA也可以是一个面板,所以如果面板对您来说不是问题,请使用它。
<div id="testpanel" runat="server"></div>
 protected void Page_Load(object sender, EventArgs e)
 {
    if (Page.IsPostBack)
    {
        testpanel.Visible = true;
    }
 }