ventanas ventana net mvc modales modal hacer extender emergente cómo asp asp.net

asp.net - mvc - ventana emergente asp net vb



¿Cómo evito el cierre de la ventana emergente modal(ModalPopupExtender) en la devolución de datos? (7)

Estoy usando Microsoft AjaxControlToolkit para la ventana emergente modal.

Y en una ventana emergente modal, cuando se produjo una devolución de datos, la ventana se estaba cerrando. ¿Cómo evito la acción de cierre del menú emergente modal?


Pon los controles dentro del panel de actualización. Por favor, mira mi código de muestra, pnlControls es el control que contiene los controles que se mostrarán en la ventana emergente:

<asp:Panel ID="pnlControls" runat="server"> <asp:UpdatePanel ID="UpdatePanel1" runat="server"> <ContentTemplate> <asp:Button ID="TestButton" runat="server" Text="Test Button" onclick="TestButton_Click" /> <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> </ContentTemplate> </asp:UpdatePanel>

Esto hará el trabajo por ti :)

Saludos cordiales, Gregor Primar


Puede llamar al método Show() durante la devolución para evitar que se cierre la ventana emergente modal

MyModalPopoupExtender.Show()


Siguiendo el caso anterior ...

En Simple.aspx, el usuario debe ingresar el nombre de una compañía. Si el usuario no recuerda el nombre de la empresa, puede hacer clic en un botón que abrirá una ventana emergente modal.

Lo que quiero hacer en la ventana modal es permitir al usuario hacer una búsqueda de una lista de compañías. Puede ingresar un nombre parcial y hacer clic en buscar. Los emparejamientos se mostrarán en una lista a continuación. Él puede hacer clic en un elemento de la lista y regresar. Si la empresa no existe, puede hacer clic en el botón ''Nuevo'' para crear una nueva compañía.

Entonces, como puede ver, quiero mucha funcionalidad en esta ventana modal.

¡Gracias!

JC


protected void Page_Load(object sender, EventArgs e) { if (Page.IsPostBack) { // reshow MyModalPopup.Show() } }


Como ya sabías, el menú emergente modal solo está en el lado del cliente, sí puedes recopilar información en él durante la devolución de datos, pero si lo haces una devolución de datos se ocultará el 100% del tiempo.

Por supuesto, como otros propuestos, puede hacer un .show durante la devolución de datos, pero depende de lo que necesite hacer.

En realidad, no sé por qué necesitas una devolución de datos, si es para algunas validaciones trata de hacerlas en el lado del cliente.

¿Podría decirnos por qué necesita hacer una devolución de datos, tal vez podríamos ayudarlo mejor? :)


Supongo que eso funciona, pero no en mi caso. Tengo un control de usuario que se abrió en una ventana emergente modal y este control de usuario hace la devolución de datos en sí. Entonces en ese control de usuario no tengo ninguna propiedad emergente modal.

Supongo que tengo que crear un evento para mi control de usuario y la página que abre el menú emergente modal debe volver a abrirlo en este caso.


Estaba teniendo este mismo problema manteniendo un modal abierto durante las devoluciones.

Mi solución:

Use EventTarget para determinar si la devolución de datos proviene de un control en el modal y mantener el modelo abierto si es así. La devolución de datos puede provenir de un control en el modal si el modal está abierto.

En el evento de carga para el control de página que contiene el modal. Determine si la devolución de datos es de un hijo mío. Determine si proviene del control que está en el panel modal.

Protected Sub Control_Load(sende As Object, e As EventArgs) Handles Me.Load If IsPostBack Then Dim eventTarget As String = Page.Request.Params.Get("__EventTarget") Dim eventArgs As String = Page.Request.Params.Get("__EventArgument") If Not String.IsNullOrEmpty(eventTarget) AndAlso eventTarget.StartsWith(Me.UniqueID) Then If eventTarget.Contains("$" + _credentialBuilder.ID + "$") Then '' Postback from credential builder modal. Keep it open. showCredentialBuilder = True End If End If End If End Sub

En prerender revise mi bandera y muestre manualmente el modal

Protected Sub Control_PreRender(ByVal sende As Object, ByVal e As EventArgs) Handles Me.PreRender If showCredentialBuilder Then _mpeCredentialEditor.Show() End If End Sub