0

このコードは .NET で記述しました。button2 をクリックして 's' を変更したいのですが、変更されません。つまり、button2 をクリックした後、Button1 をクリックして変更を確認しますが、何も変更されません。「s」の値を適切に変更してアクセスするにはどうすればよいですか。私は何を間違っていますか?

public string s;

public void Button1_Click(object sender, EventArgs e)
{
    Label1.Text = s;
}

public void Button2_Click(object sender, EventArgs e)
{
    s = TextBox1.Text;  
}
4

1 に答える 1

3

Web アプリケーションがどのように機能するかを理解する必要があります。

各ポストバックでは、ページを処理するクラスのインスタンスがロードされるため、ボタン 1 をクリックすると、ページはポストバックを実行して再度ロードするため、この方法では変数 s がコンテンツとともにロードされません。

このコードを機能させるには、ページのビューステートに S 値を保存する必要があります。

「public string s;」を置き換えてみてください。これとともに:

public string s
{
    get {  return (string)ViewState["myValue"]; }
    set [ ViewState["myValue"] = value };

}

ページ ライフ サイクルの詳細については、http: //msdn.microsoft.com/en-us/library/ms178472 (v=vs.100).aspx を参照してください。

于 2013-07-25T13:39:11.463 に答える