2

以下は、ポストバックがある場合にメッセージを表示するコードです。

protected void Page_Load(object sender, EventArgs e)
{
    if (Page.IsPostBack)
    {
        Response.Write("Hidden value :" + HiddenField1.Value);
    }
}

protected void btn_Click(object sender, EventArgs e)
{
    HiddenField1.Value = "test";
}

問題は、ボタンを 2 回クリックするとメッセージが表示されることです。これは明らかにPage_Load前に発生したためbtn_Clickです。if (Page.IsPostBack)ページのポストバックにメッセージを表示する方法を教えてもらえますか?

親切に助けて

4

1 に答える 1

2

はい、ページのライフ サイクルの問題が発生しています。Page_Load は、ポストバック イベントの前に発生します。

Resposne ストリームに対して Response.Write を実行しているだけの場合は、このコードをページ上のオーバーライドされた PreRender イベントに移動できます。

protected override void OnPreRender(EventArgs e)
{
    base.OnPreRender(e);
    if (Page.IsPostBack)
    {
        Response.Write("Hidden value :" + HiddenField1.Value);
    }
}
于 2013-05-23T09:23:45.727 に答える