ASP.NETでJavaScriptのconfirmを表示し、処理を分岐させる方法

2006-02-01
このエントリーをはてなブックマークに追加

ポストバックでイベントを起こすASP.NETの場合、JavaScriptでconfirmを出して「確認」→「分岐」という流れを作る場合はどうしたらよいだろうと悩んで、調べてみました。

//Page_Loadで属性の追加をする
public void Page_Load(object sender, EventArgs e)
{
    Button1.Attributes[“onclick”]=”return confirm(‘クリックしたの?’);”;
}

//confirmでtrueが返ってきたらこのイベントが呼ばれる
private void Button1_Click(object sender, System.EventArgs e)
{
    RegisterStartupScript(“client”, “< script language=’JavaScript’> alert(‘クリックされちゃった’) < /script> “);
}

かなり割愛してますが、必要なコードはこんな程度です。
Page_LoadでButton1というコントロールに属性を追加しておくだけです。あとは勝手に分岐処理を記述してくれます。

aspx側のボタンコントロールにonclickを直接記述したらエラーが出てしまいました。まぁ、onclickはポストバックイベントが動的に記述されるので、当然といえば当然の結果か。
もっとスマートなやり方もありそうだけど、とりあえずこんな感じで。

Tags: