2009-07-24 2 views
1

사용자 지정 asp.net 서버 컨트롤 (실제로는 체크 전용 버전)이 있습니다. 포스트 백에서 일부 처리를하고 싶지만 포스트 백이이 컨트롤을 클릭 한 결과입니다 (autopostback이 true로 설정되어있는 경우). 다시 게시가이 컨트롤 또는 다른 컨트롤의 결과인지 확인하는 가장 좋은 방법은 무엇입니까?asp.net 사용자 지정 서버 컨트롤 -이 컨트롤로 인해 포스트 백이 발생했는지 확인하는 방법

도움 주셔서 감사합니다.

+0

사용자 지정 개체의 클릭 핸들러를 만들 수 없습니다? 페이지가 게시되면 자동으로 호출됩니다. –

+0

사용자 지정 서버 컨트롤에 클릭 이벤트가 발생한다고 생각하지 않습니다. 적어도 나는 그런 것을 찾을 수 없었습니다. 나는 버튼 이벤트가 그들이 포스트 백을 일으킨 컨트롤인지 결정할 때 클릭 이벤트가 발생한다고 생각한다. 물론 여기에 뭔가 빠져있을 수도 있습니다 .. –

답변

1

event bubbling처럼 사용할 수 있습니다. 기본적으로 사용자 정의 서버 컨트롤에서 서버 컨트롤이 복합 컨트롤 인 경우 확인란에 onchange 이벤트가 표시됩니다. 그런 다음 컨트롤을 호스팅하는 페이지의 이벤트 핸들러에 특수 처리 코드를 작성하십시오.

+0

내 컨트롤은 Checkbox에서 파생 된 클래스 일뿐입니다. onchange 이벤트를 찾을 수 없습니다. –

+0

"asp : CheckBox"이면 이벤트의 이름은 OnCheckedChanged()입니다. 이벤트를 버블 링하도록 코드를 구현 한 후에는 RaiseBubbleEvent() OnCheckChanged() 이벤트 핸들러를 호출합니다. – HectorMac

+0

시간을내어 답변 해 주셔서 감사합니다. CheckChanged 이벤트가 필요할 때 항상 발생하지 않기 때문에 실제로이 작업을 수행하는 이유가 있습니다. 컨트롤이 마지막 포스트 백 이후 체크 상태가 변경되지 않았다고 생각하면 이벤트가 발생하지 않습니다. 하지만 일부 자바 스크립트 코드가 포스트 백을 발생시키지 않고 확인란의 상태를 변경 한 다음 사용자가 상자를 다시 클릭하면 서버 코드가 실제로 변경된 상태 (자바 스크립트를 통해)를 알지 못하고 사용자가 상자. 상태가 마지막 포스트 백과 동일하고 이벤트를 발생시키지 않는 것을 볼 수 있습니다. –

관련 문제