2009-05-14 7 views
1

내가 새 행의 테이블 셀에하여 ImageButton 쓰기 아약스 패널의 게시에 동적하여 ImageButton에 대한 핸들을 얻는 방법 :사용자가 목록에서 항목을 선택하면

ImageButton imgbtnRemove = new ImageButton(); 
imgbtnRemove.ID = "uxStandardLetterDeleteImage_" + items.letterName; 
imgbtnRemove.CommandName = "uxStandardLetterDeleteImage_" + items.letterName; 
imgbtnRemove.ImageUrl = items.remove; 
imgStatus.AlternateText = "Remove"; 
tRow.Cells[3].Controls.Add(imgbtnRemove); 

새로운하여 ImageButton을 나는 그것을 처리 할 수없는 것처럼 보입니다. Page_PreRender 이벤트에서 볼 수 있습니다. 여기서 각 포스트 백에서 테이블을 다시로드합니다.

string returnData = Request.Form.ToString(); 

하지만 양식을 통해 반복하는 제어 이미지 :

if (c is System.Web.UI.WebControls.Button || 
c is System.Web.UI.WebControls.ImageButton) 

그것을 발견하지 않습니다. 나는 내가 수동으로 넣어 경우를 찾을 수 있습니다를 Page_Load에

imgbtnRemove.Click += new System.Web.UI.ImageClickEventHandler(this.ButtonClick); 

후 클릭 이벤트에 잡아 : 추가 및 삭제되는 새 행이 있기 때문에

switch (((System.Web.UI.WebControls.ImageButton)sender).CommandName) 
... 

하지만,이 가져 프로그래밍 방식으로보기에는 오히려 추악합니다. 나는 동적 인 이미지 버튼 생성과 검색을 서버 측 코드에서 즉시 수행 할 수있는 우아한 솔루션이 있어야한다고 생각합니다. 나는 많은 파기를했으나이 하나가 나를 뒤적 거리고있다. 사전에

덕분에 ...

답변

2

당신이 (항목 선택한 이벤트에서, 예를 들어) 페이지 수명주기의 단계를 이벤트 처리 중에 동적 컨트롤을 만드는 경우, 제어는 다음에 사라질 것 다시 게시.

동적 컨트롤을 ViewState에 등록하려면 이벤트 라이프 사이클의 초기화 단계에서 만들어야합니다.

또한 테이블의 셀에 이미지 버튼을 추가 할 때 양식의 컨트롤을 반복한다고합니다. 재귀 적으로 제어 계층을 내림으로써 이미지 버튼을 찾으십니까?

+0

테이블 레크 리 에이션을 OnInit으로 이동하면 내 (재귀 적) 컨트롤 메서드에서 컨트롤을 찾을 수 있었지만 일단 패널이로드되면 새 행을 잃어 버렸습니다 ... 그러나 나는 그것을 해결할 수 있다고 생각합니다. 감사! – 32U

관련 문제