2012-05-10 6 views
0

안녕하세요. 저는 asp.net에 꽤 익숙해졌습니다. 많은 데이터를 가져 와서 처리하는 웹 사이트/양식을 만들려고합니다. submitButton_Click 메서드를 호출하는 제출 단추가 있지만 동일한 이벤트에서 서버 끝 처리를 수행하는 동안 "기다려주십시오"라는 modalpopup도 있습니다. 문제는 modalpopup이 정상적으로 작동하는 것처럼 보이지만 submitButton_Click 메서드 호출을 억제하고 있다는 것입니다. 나는 무엇을해야합니까?OnClick을 우회하는 ModalPopupExtender

또한 updatepanel이 열릴 때 호출되는 기본 메소드를 사용할 수 있습니까? 마지막 시간에 업데이트 할 때마다 팝업이 나타날 때마다 패널을 동일하게 유지해야합니다.

<asp:Button ID="submitButton" runat="server" Text="Submit" OnClick="submitButton_Click" 
      CssClass="buttons"/> 

<asp:ModalPopupExtender 
     ID="modalProgress" 
     runat="server" 
     OkControlID="btnOkay" 
     TargetControlID="submitButton" 
     PopupControlID="progessPanel" 
     BackgroundCssClass="modalBackground"> 

</asp:ModalPopupExtender> 

답변

2

그것은하지 않습니다 우회 클릭 이벤트; 단지 클라이언트 쪽 onclick이 false를 반환하도록 변경하여 다시 게시를 무효화합니다. 솔직히, 나는 항상 이것을 엉덩이의 고통으로 생각했습니다. Forunately,이 해결 방법이다 :

<asp:Button ID="submitButton" runat="server" Text="Submit" OnClick="submitButton_Click"    CssClass="buttons"/> 
<!-- hidden button to satisfy the extender --> 
<asp:Button ID="hiddenButton" runat="server" style="display:hidden" /> 

<asp:ModalPopupExtender 
     ID="modalProgress" 
     runat="server" 
     OkControlID="btnOkay" 
     TargetControlID="hiddenButton" 
     PopupControlID="progessPanel" 
     BackgroundCssClass="modalBackground"> 
</asp:ModalPopupExtender> 

당신이 확장의 요구 사항을 충족 것이다 숨겨진 버튼을 추가함으로써, 당신은 제출 버튼의 클릭 이벤트에서 코드 숨김에서 대화 상자를 열 수 있습니다

protected void submitButton_Click(object sender, EventArgs e) 
{ 
    //display the modal dialog 
    modalProgress.Show(); 
} 
+0

나는이 접근 방식을 과거에 보았지만 PopUpControlExtender를 "만족"시키는 버튼을 가지고 있다는 생각을 싫어합니다. * 내가 할 수있는 대안을 게시했습니다. * - 나는 그것을 테스트하지 않았습니다. – Icarus

+0

@ 이카루스 : 그래, 나도 그걸 좋아하지 않아. 불행하게도, 익스텐더를 표시하기 전에 로직을 수행해야하는 경우가 있습니다. 주로 RadToolTip을 사용하고 있는데, 주로 이런 이유 때문입니다. –

+0

+1 내 코드가 작동하지 않습니다. ModalPopUpExtender는 TargetControlID를 지정해야합니다. – Icarus