2009-05-25 4 views
0

연락처에 연락처 테이블이있는 동적 페이지가 있습니다. 연락처에 이메일이 있으면 클릭 이벤트가있는 이미지 버튼을 만듭니다. 페이지의 나머지 부분에서도 비슷한 기능을합니다.) (갑자기 동적으로 생성 된 이미지 버튼의 클릭 이벤트가 발생하지 않습니다.

protected void CreateContactsList(IQueryable<AA_BranschFinder.Login.vyWebKontaktpersoner> lContacts) // Creates a table in the aspx from an IQueryable List 
     { 
      if (1 == 1) 
      { 
       htmlTblContactsContent.Rows.Clear(); 

       foreach (var p in lContacts) 
       { 
        HtmlTableRow tr = new HtmlTableRow(); 
        HtmlTableCell tdName = new HtmlTableCell(); 
        HtmlTableCell tdCompanyName = new HtmlTableCell(); 
        HtmlTableCell tdEmailAdress = new HtmlTableCell(); 
        tdName.InnerHtml = p.strFnamn + " " + p.strEnamn; 
        tdCompanyName.InnerHtml = p.strNamn; 

        //Displays an image if the contacts has an email 
        if (p.strEpost != null) 
        { 
         ImageButton imgEmail = new ImageButton(); 
         imgEmail.CommandArgument = p.intKundID.ToString(); 
         imgEmail.ImageUrl = "images/symbol_letter.gif"; 
         imgEmail.CssClass = "letter"; 
         imgEmail.Click +=new ImageClickEventHandler(imgEmail_Click); 
         tdEmailAdress.Controls.Add(imgEmail); 
        } 
        tr.Cells.Add(tdCompanyName); 
        tr.Cells.Add(tdEmailAdress); 
        tr.Cells.Add(tdName); 
        htmlTblContactsContent.Rows.Add(tr); 
       } 
      } 

     } 

     void imgEmail_Click(object sender, ImageClickEventArgs e) 
     { 

중단 점 여기 던져 새로운 NotImplementedException; 그리고 나는 아무 문제없이 전에이 사용 }

페이지가 자바 팝업 창 안에 있습니다. 하지만 비슷한 이벤트 생성 기능이있는 페이징 번호는 정상적으로 작동합니다. 그러나 그들은 Linkbuttons입니다.

답변

0

어디에서 Create 메서드를 호출하고 있습니까? 다른 이벤트 핸들러가 실행되기 전에이 작업을 수행해야합니다. 이상적으로 Page.Init. 그렇지 않으면 페이지에 다시 게시 된 데이터는 아직 존재하지 않는 컨트롤에 대한 이벤트 발생을 나타냅니다.

ImageButton에 ID를 부여했는지 확인해야합니다. 디버깅이 훨씬 쉬워 질 것입니다.

imgEmail.ID = String.Format("EmailImageButton_{0}", p.intKundID); 

또 다른 해결책은 Request 객체의 __EVENTTARGET 및 __EVENTARGUMENT 매개 변수를보고이 클릭 된 버튼을 볼 수있다.

0

모든 포스트 백에 동적 컨트롤을 만들어야합니다. 또한 imgEmail_Click 이벤트 처리기의 코드를 확인하십시오.

throw new Exception("The method or operation is not implemented."); 
0

하면 미안이하여 ImageButton을 misstaking하지 않는 종류의 제출 - 당신은 .NET IDE의 Alt + Shift + F10 방법을 사용하여 이벤트 처리기 메서드를 만든 경우, 다음이 줄을 제거하지 않은 기회가있다 linkbutton은 javascript가있는 a 태그 인 반면 어쩌면 당신의 imagebutton 클릭을 변경 (ieuseubmitbehaviour false로 설정) 문제를 해결할 것입니다.

0

이벤트 핸들러가 포스트 백에 추가되었는지 확인하십시오. 초기 페이지로드시 추가 할 때 이벤트가 처리되지 않습니다! (이 문제를 직접 만나서 해결했습니다.)

관련 문제