2010-03-16 60 views
17

Me gustaría utilizar un modalpopupextender en mi página asp.net para mostrar un formulario secundario. Pero solo debe mostrarse en condiciones específicas. Esas condiciones se determinan en un fragmento de código javascript.¿Utiliza ModalPopupExtender sin tener que establecer TargetControlID?

Por lo tanto, lo más importante, la ventana emergente modal no tiene que mostrar en un clic de botón. Sin embargo, si dejo la propiedad TargetControlID vacía obtengo la siguiente excepción:

El TargetControlID de 'ModalPopupExtender1' no es válido. El valor no puede ser nulo o vacío. Descripción: Se produjo una excepción no controlada durante la ejecución de la solicitud web actual. Revise el seguimiento de la pila para obtener más información sobre el error y dónde se originó en el código.

Detalles de excepciones: System.InvalidOperationException : El TargetControlID de 'ModalPopupExtender1' es no es válido. El valor no puede ser nulo o vacío.

¿Acabo de tener el TargetControlID en un botón oculto o hay también una opción más decente?

+0

Se utilizó el HiddenField o el control Button como el ID de control de destino. ¿Ha tenido alguna dificultad al tener hiddenfield como targetcontrolId porque ahora soy – Deeptechtons

+1

@Deeptechtons, no uso un HiddenField. Use un control Button, pero ocúltelo con css (style = "display: none;") como mencionó Mike en su respuesta. –

+0

tiene toda la razón. El botón resolvió mi problema. ¿Qué hay de malo en usar los campos ocultos? – Deeptechtons

Respuesta

19

Ajuste del TargetControlID a un botón oculto (display: none;) es la mejor manera por lo que yo sé.

+0

Primero intenté agregar '', pero no funcionó. '' es la clave, como indica esta respuesta. – user1325179

10

El TargetControlID también podría ajustarse a un tipo HiddenField. De esa manera usted ni siquiera necesita un botón

0

Creta un botón y establecerlo como su TargetControlID y dar style = "display:none"

<asp:ModalPopupExtender ID="ModalPopupExtender1" runat="server" PopupControlID="Panel1" TargetControlID="btnPopup" 
     CancelControlID="btnClose" BackgroundCssClass="modalBackground" OkControlID="btnClose"></asp:ModalPopupExtender> 

<asp:Button ID="btnPopup" runat="server" Text="PopUp" style = "display:none" /> 
Cuestiones relacionadas