2011-05-07 3 views
7

을 안에있는 HyperLink으로 어떻게 설정할 수 있습니까? GridView의 컨트롤을 사용하여 ModalPopupExtender에서 TargetContrlID를 설정하는 방법

나는이 시도 :

<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" 
         PopupControlID="Panel1" 
         CancelControlID="btnCancel" 
         OnCancelScript="HideModalPopup()" 
         TargetControlID="GridView1$HyperLink1"> 
</asp:ModalPopupExtender> 

을하지만 오류가 있습니다 컨트롤이 때 기본적으로 그 ModalPopup의 클라이언트 사이드 쇼 기능을 트리거 TargetControlIDModalPopupExtender의 설정에는 GridView1$HyperLink1

답변

8

이 없음 클릭 함. 따라서 컨트롤을 직접 연결해야합니다. ModalPopupExtenderTargetControlID을 필요로하기 때문에

먼저, 당신은에 모달 팝업을 연결하는 더미 컨트롤을 추가해야합니다

<asp:Button runat="server" 
      ID="HiddenTargetControlForModalPopup" 
      style="display:none"/> 

링크 그래서

<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" 
         PopupControlID="Panel1" 
         CancelControlID="btnCancel" 
         OnCancelScript="HideModalPopup()" 
         TargetControlID="HiddenTargetControlForModalPopup"> 
</asp:ModalPopupExtender> 

ModalPopupExtenderModalPopupExtenderTargetControlID 이제는 아무 것도하지 않는 목표가 있습니다. 이제 우리는 이제 목표물의 일을해야합니다. 클라이언트 쪽에서 ModalPopup을 표시하려면 javascript 함수가 필요합니다.

<script type="text/javascript"> 
    var ModalPopup='<%= ModalPopupExtender1.ClientID %>'; 

    function ShowModalPopup() { 
     // show the Popup  
     $find(ModalPopup).show(); 
    } 
</script> 

그런 다음이 자바 스크립트 함수에 gridview에서 컨트롤의 OnClientClick 이벤트를 매핑해야합니다. 귀하의 코드에서 asp:HyperLink을 사용하고 있는데, OnClientClick 이벤트를 지원하지 않는다고 생각하므로 asp:LinkButton으로 전환해야 할 수 있습니다.

<asp:LinkButton ID="LinkButton1" runat="server" 
       OnClientClick="ShowModalPopup()" /> 
+0

안녕하세요, 귀하의 코드를 사용하고 있지만 오류가 발생했습니다 .. Microsoft JScript 런타임 오류 : Sys.ArgumentNullException : 값을 null 일 수 없습니다. 매개 변수 이름 : 처리기 – software

+0

이 문제를 해결하는 방법을 알려주십시오. – software

+0

은 잘 테스트 된 솔루션으로 잘 작동합니다. 귀하의 오류가 다른 곳에있을 수 있습니다. 디버깅을 시도하여 오류가 발생한 위치를 확인하십시오. – DavRob60

관련 문제