我在页面上有几个动态的Div标签,即根据某些标准,它们对用户可见或不可见。我想将它们添加到页面的视图状态,以便在回发后它们不再被隐藏,我该怎么做?
答案 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;
}
}
但话又说回来,如果你不希望它作为服务器控件,那么这个解决方案将不起作用。