2009-04-30 6 views
3

웹 페이지에서 내 사용자 정의 컨트롤을 동적으로 호출하고 있습니다. 처음으로 사용자 컨트롤의 단추를 클릭 할 때 이벤트가 발생하지 않습니다. 같은 것을 두 번째로 클릭하면 이벤트가 실행 중입니다.UserControl 이벤트가 처음으로 작동하지 않습니다.

아무도 도와 줄 수 있습니까?

답변

2

컨트롤의 클라이언트 ID는 INamingContainer 인터페이스로 표시된 컨트롤을 포함하는 모든 컨트롤의 ID에서 파생됩니다. 따라서 계층 구조의 모든 컨트롤에 고정 ID가 있는지 확인하십시오.

예를 들어, Repeater 안에 Button 컨트롤이있는 경우 단추의 ID와 리피터가 연결되어 단추의 클라이언트 ID를 만듭니다. 따라서 리피터와 버튼 모두 포스트 백에서 동일한 ID를 가져야합니다.

첫 번째 요청의 HTML을 두 번째 요청의 HTML과 비교하여 이것이 문제인지 신속하게 판단 할 수 있습니다.

+0

감사합니다. 문제가 해결되었습니다. –

1

동적으로 생성 된 컨트롤의 ID를 지정하십시오. 그렇지 않으면 이벤트가 발생하지 않습니다.

3

모든 페이지로드시 버튼 OnClick 이벤트에 대한 연결이 필요하지 않습니다. 이는 필수 사항입니다.

컨트롤을 추가 할 때와 페이지에 poastback 한 후에 연결이 수행되고 있음을 보장 할 수 있습니까? 나는 항상 내 이벤트 훅을 Page_Init 또는 Page_Load 이벤트 핸들러에 그리고 포스트 백 (Postback) 체크 외부에 놓는다. 핸들러 훅에 브레이크 포인트를 두어 브레이크 포인트가 두 번 "히트"되는지보십시오. 버튼을 누르기 전에 전체 페이지의 다운로드를 기다리고있다

protected void Page_Load(object sender, EventArgs e) 
{ 
    btnSearch.Click += new EventHandler(btnSearch_Click); // breakpoint on this line 
} 
0

: 버튼에 대한 이벤트 인맥은 비슷하게

?

이벤트는 클릭 할 때 나타나지 않은 페이지의 ASP.Net에 의해 숨겨진 javascript 함수입니다.

관련 문제