2011-05-07 17 views
7

¿Cómo puedo establecer TragetContriID en un HyperLink que está dentro de un GridView?Cómo establecer TargetContrlID en ModalPopupExtender con un control en un GridView

He intentado esto:

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

pero tengo un error: que no hay GridView1$HyperLink1

Respuesta

8

Ajuste del TargetControlID del ModalPopupExtender básicamente desencadenar el lado del cliente Mostrar función de ese ModalPopup cuando el control está clickeado Entonces usted necesita cablear los controles usted mismo.

En primer lugar, ya que el ModalPopupExtender necesitan un TargetControlID, se debe agregar un control ficticio para enlazar la ventana emergente modal:

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

y vincular el ModalPopupExtenderTargetControlID a ella

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

Así que la ModalPopupExtender ahora tiene un objetivo que no hace nada. Ahora necesitamos hacer el trabajo del objetivo. Necesita una función de JavaScript para mostrar ModalPopup desde el lado del cliente.

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

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

entonces usted debe asignar el evento OnClientClick del control en su gridview a esta función de JavaScript. Desde su código, veo que usa un asp:HyperLink, no creo que sea compatible con el evento OnClientClick, por lo que probablemente deba cambiarlo a asp:LinkButton.

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

Hola Estoy utilizando el código, pero yo estoy recibiendo un error .. Microsoft JScript error de ejecución: Sys.ArgumentNullException: Valor no puede ser nulo. nombre del parámetro: controlador – software

+0

por favor, hágamelo saber cómo resolver esto – software

+0

funciona bien para mí, solución bien probada. Tu error puede ser en otro lugar. Intenta depurarlo para ver dónde ocurre el error. – DavRob60

Cuestiones relacionadas