はい、あなたはポストバックが発生します唯一のコントロールがある絶対に確信していると、ボタンのクリックイベントに行くべきコードを追加するIsPostBack
フラグを付けてちょうどPage_Load
を使用することができます。
ポストバック(ボタン、ラジオボタン、ドロップダウンなど)を引き起こす可能性のあるコントロールが複数ある場合は、別のロジックを持つコントロールごとに別々のイベントハンドラが必要です。ポスト戻るPageLoad
イベント。
あなたのケースでは、ちょうどボタンを使って、Page_Load
のコードをIsPostBackでチェックしても問題ありません。
クリックイベントハンドラ自体にボタンクリックイベントロジックがあることをお勧めします。そうすれば、IsPostBackチェックをする必要はありません。コードもきれいに見えます。
protected void Page_Load(object sender, EventArgs e)
{
FillControls();
if (IsPostBack) //Will work. But can get executed for postback caused by any other control
{
SaveToDB();
Response.Redirect("URL");
}
}
protected void Btn_Click(object sender, EventArgs e)
{
//Assurance that this code will execute only for PostBack caused by Button.
SaveToDB();
Response.Redirect("URL");
}