>

시나리오 1 (작동) 이것은 내가 만든 POC입니다. 스크립트 관리자, html 텍스트 상자, ASP.NET 버튼, 위에서 언급 한 버튼의 Click 이벤트에 대해 비동기 트리거가 설정된 업데이트 패널이 있습니다. 내가 가지고있는 HTML 텍스트 상자의 경우 onkeyup='__doPostBack('<%=ASPBUTTON.ClientID%>','') . 그리고 작동합니다. Click 이벤트 버튼을 누르면 updatepanel이 비동기 적으로 업데이트됩니다.

시나리오 2 (작동하지 않음) 내 실제 코드베이스와의 유일한 차이점은 HTML 텍스트 상자의 onchange 대신 onchange 이벤트가 사용되는 JQUERY FILAMENTGROUP datetimepicker가 있다는 것입니다. 또한, 여기 내 페이지는 마스터 페이지를 사용합니다. 이제 내 문제는 datetimepicker에 대한 onchange 이벤트가 발생하면 요청이 서버 측으로 진행되지만 BUTTON 클릭 이벤트가 시작되지 않는다는 것입니다.

더 자세한 내용은 datetimepicker 선택시 업데이트 패널을 자동으로 업데이트하고 싶습니다. 따라서 버튼은 실제로 CSS를 통해 숨겨집니다 (display : none).

버튼 ID-btnDateRangeCallback

Datetimepicker 텍스트 상자 (비 ASP 제어)-dateRange

       onChange: function() {__doPostBack('<%=btnDateRangeCallback.ClientID%>',   $('#dateRange').val());}

[단순한 POC의 경우에는 작동하지만 실제 코드베이스에서는 마스터 페이지를 사용하여 상속하므로이 모든 컨트롤은 콘텐츠 자리 표시 자에 배치됩니다. 또한 포스트 백이 발생하며 Page_Load에서 중단되면 _EVENTTARGET 및 _EVENTARGUMENT가 올바르게 전송되는 것을 볼 수 있습니다.

도움을주세요.

더 간단히 말하면 포스트 백 후 Page_Load에서 중단하면 Request.Form 내용이 다음과 같이 표시됩니다. ctl00 % 24ContentPlaceHolder1 % 24SMgr1 = ctl00 % 24ContentPlaceHolder1 % 24SMgr1 % 7cctl00_ContentPlaceHolder1_btnDateRangeCallback &__ EVENTTARGET = ctl00_ContentPlaceHolder1_btnDateRangeCallback &_EVENTARGUMENT = 5 % 2f3 % 2f2011 +-+ 6 % 2f2 % 2f2011 &_VIEWSTATE = % 2fwEPDwULLTE3NDY5NDIwMDRkZIuTqMNNsFHlRYhjpKaUCaCXj42h &_EVENTVALIDATION = % 2fwEWAgLBx52kBALP6Ln6DdkkwE % 2frVIKQzKE1L0k4QhIc768w &_ASYNCPOST = true&

btnDateRangeCallback 치는 경우 Click 이벤트가 아닌 이유는 무엇입니까?

  • 답변 # 1

    대신 UniqueID를 사용하십시오 : __doPostBack('<%=btnDateRangeCallback.UniqueID %>', ...

  • 답변 # 2

    왜 버튼을 클릭하지 않습니까?

    onchange="$('#<%= ASPBUTTON.ClientID %>').click()"
    
    

    (이상적으로는 인라인 이벤트 핸들러도 사용하지 마십시오 ...)

    그것이 당신에게 좋지 않다면 __EVENTTARGET 를 사용하여 해결할 수 있습니다.  그리고 __EVENTARGUMENT  (가이드는이 기사 참조)

관련 자료

  • 이전 스프링 데이터 mongodb mongotemplate을 사용하여 임베디드 문서를 삽입하는 방법
  • 다음 c# - Android 애플리케이션에서 Android 용 Mono 클래스를 호출하는 방법은 무엇입니까?