2011-12-26 3 views
0

클릭 이벤트가 할당 된 두 개의 이미지 버튼이 있습니다. 각 이벤트에는 코드가 있습니다. 버튼을 클릭하면 클릭 이벤트에서 코드가 실행되기 전에 페이지로드 기능이 실행됩니다. 먼저 클릭 이벤트에서 코드를 실행하려면 어떻게해야합니까?이미지 버튼 및 포스트 백 문제

해피 홀리데이!

이미지 버튼.

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