保存价值,并从视图状态读数(Saving a value to and reading from t

2019-09-20 17:05发布

我不是太熟悉.NET,但我想一个简单的值(1和1000之间的数字,这是一个特别的高度保存div )的视图状态和检索它时,更新面板重新加载(无论是在标记的地方或用JavaScript)。 什么是最简单的方法是什么?

本页面给了我下面的代码:

string strColor;
if (Page.IsPostBack)
{
   // Retrieve and display the property value.
   strColor = (string)ViewState["color"];
   Response.Write(strColor);
}
else
   // Save the property value.
   ViewState["color"] = "yellow";

不过,我不是在哪里或如何访问例如strColor完全清楚。

由于这是在后面的代码,在那里将Response.Write甚至吐出的代码呢? 我找不到它,当我尝试这种代码。 我如何使用JavaScript来设置的,而不是在后面的代码设置它该值,?

Answer 1:

你可以简单地设置DIV作为服务器控件像这样:

<div id="yourdiv" runat="server" ...

而当页面回; 简单的设置它通过设置其属性的高度; 例如:

yourDiv.Attributes("style","height:"+height_read_from_ViewState+"px;");

或者,你可以存储在客户端的高度,采用了隐藏字段和读取隐藏字段的服务器端的值来设置div的高度。

<asp:hiddenfield id="hdnHeight" runat="server" />

您在JavaScript设置高度为这样:

function setHeight(value)
{
  document.getElementById('<%=hdnHeight.ClientID').value=value;
}

而就后回到服务器端:

yourDiv.Attributes("style","height:"+hdnHeight.Value+"px;");


Answer 2:

我会改变strColor的属性,并使用视图状态作为后备存储的属性格式。

public string strColor 
{
    get
    {
        return ViewState["strColor"];
    }
    set
    {
        ViewState["strColor"] = value;
    }

}

然后您可以使用它像任何其他财产:

if (Page.IsPostBack)
{
   // Retrieve and display the property value.
   Response.Write(strColor);
}
else
   // Save the property value.
   strColor = "yellow";


文章来源: Saving a value to and reading from the viewstate