2011-07-28 9 views
11

내 asp.net 웹 페이지에 updatepanel이 있습니다. 단추로 트리거하는 자바 스크립트 함수 내에서 updatepanel을 트리거하고 싶습니다.
그렇게하기 위해 나는 __doPostBack('myUpdatePanel', ''); 함수를 사용했다. 하지만 난 그것이 전체 페이지를 다시 게시하는 것 같아요. 이 함수를 호출하면 내 document.ready 함수도 실행됩니다. 나는 몇몇 점을 놓칠지도 모른다.
javascript 함수 내에서 updatepanel을 트리거하는 다른 방법이 있습니까?javascript 함수 내에서 updatepanel을 트리거하는 방법

답변

18

업데이트 패널에 숨겨진 버튼을 넣고이 버튼을 클릭하면 자바 스크립트를 사용하여 원하는 것을 할 수 있다고 생각합니다.

<script type="text/javascript"> 
     function Update_UpdatePaanel() { 
      document.getElementById('<%= YourButton.ClientID %>').click() 
     } 
    </script> 

버튼은 숨겨진 DIV 안에 있어야하고 공개 대상 설정하지 마십시오 = false로 설정하면, 컨트롤이 렌더링되지 않고 자바 스크립트 오류가 발생하기 때문에 "거짓".

<div style="display:none"> 
     <asp:Button ID="YourButton" runat="server" /> 
    </div> 
+0

정말 가능합니까? 그래서 aspbutton을 클릭하는 방법을 찾아야합니다. 자바 스크립트로 숨겨진 aspbutton의 클릭 이벤트를 발생시키는 법을 아십니까? – Fer

+0

document.getElementById ('<% # YourButton.ClientID %>').() –

+0

샘플 코드로 답변을 업데이트했습니다. –

3

그냥 자바 스크립트 함수를 작성하고 실행 생성 된 포스트 백 이벤트 :

<%=ClientScript.GetPostBackEventReference(myUpdatePanel, "")%> 

위의 문이 당신의 영문 페이지에 넣어를하고, 서버에서 생성 된 동일한 코드가 원인이 참조 패널에 대한 다시 게시. 당신은 클라이언트 측에서 함수 내부를 넣어 사용할 수 있습니다 :

function fncUpdatePanel() { 
    <%=ClientScript.GetPostBackEventReference(myUpdatePanel, "")%>; 
} 

그런 다음 당신은 당신의 페이지에있는 모든 이벤트 (심지어 마우스 오버 이벤트)에 해당 기능을 첨부 할 수 있습니다. 이 예는 서버 측을 사용하여 이벤트를 첨부합니다.

myUpdatePanel.attributes('onmouseover', 'fncUpdatePanel()') 
+0

자세히 설명해 주시겠습니까? 나는 자바 스크립트 코드에서 패널을 트리거해야합니다. 코드가 서버 측에있는 것 같습니다. – Fer

+0

추가 세부 정보 – rkw

+1

GetPostBackEventReference는 포스트 백이 아니기 때문에 비동기 게시물 백스입니다. 대신 GetCallbackEventReference를 사용하려고하지만 올바르게 작동하도록 올바른 컨트롤 참조를 전달하는 행운을 빕니다. – jlafay

관련 문제