ASP Postback에서 어떤 컨트롤 이벤트가 발사 될지 알 수 있습니까?

StackOverflow https://stackoverflow.com/questions/243120

  •  04-07-2019
  •  | 
  •  

문제

내부에서 발사 될 통제 이벤트 목록을 얻을 수 있습니까? Page_Load 매니저?

예를 들어 버튼을 클릭 한 경우 이전에 이것을 알아낼 수 있습니다. button_click 이벤트 핸들러가 호출됩니까?

도움이 되었습니까?

해결책

당신은 정말 힘든 질문을 선택했습니다 ... 그 이유는 사건이 시작될 몇 가지 방법이 있기 때문입니다.

1) __eventTarget (위에서 언급 한 바와 같이) 2) 버튼의 이름이 myButt 인 경우 쿼리 문자열에 "myButt ="가 표시됩니다. 3) 각 컨트롤 (예 : 텍스트 상자)이 요청을 확인하여 viewstate의 값이 게시 된 것과 다른지 확인하면 "Text_Changed"가 발사됩니다.

그러나 #1 및 #2를 사용하여 몇 장소를 확인할 수 있습니다.

다른 팁

불행히도, __eventTarget 값을 심문하는 것은 속임수를하지 않습니다. 종종 그 값은 비어있을 것입니다. Postback 프로세싱은 이벤트 대상 값 (있는 경우)보다 더 많은 이벤트를 기준으로 어떤 이벤트를 제어 할 것인지 (예 : 텍스트 상자의 경우) 텍스트 변경과 같은 이벤트를 올려야하는지 여부를 결정합니다. .

이벤트 핸들러를 실제로 이벤트를 캡처하려는 모든 컨트롤에 연결하는 것 외에도 이벤트를 결정할 방법이 없다고 생각합니다. 그래도 프레임 워크가하는 일을 기본적으로 수행하는 것이 가능할 수 있습니다. 컨트롤이 생성되고 ViewState가 복원되었지만 게시 된 값이 처리되기 전에이를 수행해야합니다. 현재 제어 값 (ViewState의)을 게시 된 값과 비교하여 본질적으로 어떤 이벤트를 결정할 수 있습니다. ~일 것이다 불.

이것으로 당신의 목표는 무엇입니까? 아마도 더 나은 솔루션이있을 것입니다.

다음에는 클릭하면 버튼에 대한 엉망인 ID가 포함되어 있습니다.

Page.Request.Form["__EVENTTARGET"]

여기 예입니다 나는 당신의 질문에 대한 답변을 믿습니다.

또 다른 방법은 디버깅 할 때 중단 점을 설정하는 것입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top