2011-12-26 9 views
0

Clickイベントが割り当てられた2つの画像ボタンがあります。各イベントにはコードがあります。クリックされると、クリックイベントでコードが実行される前にページ読み込み機能が実行されます。最初にクリックイベントでコードを実行するにはどうすればよいですか?画像ボタンとポストバックの問題

ハッピーホリデー!

画像ボタン。

protected void Page_Load(object sender, EventArgs e) 
    { 
     //YesID = "1"; 
     if (!IsPostBack) 
     { 

      Session["FirstyesID"] = 0; 
      Session["FirstnoID"] = 0; 
      Session["SecondnoId"] = 0; 
      Session["SecondyesId"] = 0; 
      Session["yesID"] = 0; 
      Session["noId"] = 0; 
     } 
     else 
     { 
      //Run this code 
     } 
} 
     protected void FirstPicLink_Click(object sender, ImageClickEventArgs e) 
    { 
     Session["yesID"] = Session["FirstyesID"]; 
     Session["noId"] = Session["FirstnoID"]; 
     //FirstPicLink.PostBackUrl = "default.aspx"; 
     //FirstPicLink.PostBackUrl = "GadgetFS.aspx?yesId=" + firstYesPicId + "&noId=" + firstNoPicId; 

    } 

    protected void SecondPicLink_Click(object sender, ImageClickEventArgs e) 
    { 
     Session["yesID"] = Session["SecondyesId"]; 
     Session["noId"] = Session["SecondnoId"]; 
     //SecondPicLink.PostBackUrl = "default.aspx"; 
     //SecondPicLink.PostBackUrl = "GadgetFS.aspx?yesId=" + secondYesPicId + "&noId=" + secondNoPicId; 
    } 

答えて

2

あなたが求めているのは違法です。その後あなたの頭痛の原因になりますあなたは、「取扱ポストバックイベントは」「ロード」の後に発生し、これをだまししようとして見ることができるように物事がASP.NET

で実行される順序は、あります。それは非常に悪い習慣であり、これはその道を歩いている人からのものです。ページのライフサイクルを混乱させたくありません。

コードを見ると、// Run this codeの行にあるメソッドをメソッドに配置し、そのメソッドをクリックハンドラから呼び出すことができますが、elseブロックから呼び出すことをお勧めします。 どうやら、ページのライフサイクルを常に念頭に置いて、コードロジックをそれに従って修正する必要があります。

+0

ありがとうございます。画像をクリックしたら、変数を割り当てる方法を再考する必要があります。 – CsharpBeginner

関連する問題