5

私は .NET にあまり詳しくありませんが、単純な値 (特定の高さである 1 から 1000divまでの数値) をビューステートに保存し、更新パネルがリロードされたときにそれを取得したいと考えています (マークアップのいずれか)。どこかまたは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を使用してその値を設定するにはどうすればよいですか?

4

2 に答える 2

7

次のように、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;");
于 2012-08-02T17:37:26.347 に答える
3

strColor をプロパティに変更し、viewstate をプロパティのバッキング ストアとして使用します。

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";
于 2012-08-02T17:33:15.397 に答える