open net modal from bootstrap asp ajaxtoolkit asp.net javascript asp.net-ajax

asp.net - from - open modal window c# asp net



Cómo especificar javascript para ejecutar cuando se muestra ModalPopupExtender (8)

ModalPopupExtender modifica el botón / hipervínculo que diga que es el elemento "desencadenante". La secuencia de comandos onclick que agrego activa antes de que aparezca la ventana emergente. Quiero que se inicie la secuencia de comandos después de que se muestre la ventana emergente.

Además, todavía me deja con el problema de cuando muestro el modal del lado del servidor.

ASP.NET AJAX ModalPopupExtender tiene propiedades OnCancelScript y OnOkScript, pero no parece tener una propiedad OnShowScript. Me gustaría especificar una función de JavaScript para que se ejecute cada vez que se muestre la ventana emergente.

En situaciones pasadas, configuré el TargetControlID en un control ficticio y proporciono mi propio control que primero hace algún código JS y luego usa los métodos JS para mostrar la ventana emergente. Pero en este caso, estoy mostrando la ventana emergente del código del lado del cliente y del servidor.

¿Alguien sabe de una forma de hacer esto?

Por cierto, necesitaba esto porque tengo un cuadro de texto en el modal que quiero hacer un editor de TinyMCE. Pero el script de inicio TinyMCE no funciona en cuadros de texto invisibles, así que tuve que encontrar una manera de ejecutarlo en el momento en que se mostró el modal


Si está utilizando un botón o un hipervínculo o algo para activar la ventana emergente, ¿podría agregar un controlador adicional al evento onClick del desencadenador que todavía debe activar el menú emergente modal y ejecutar el javascript al mismo tiempo?


hmmm ... estoy bastante seguro de que hay un evento mostrado para el MPE ... esto está fuera de mi cabeza, pero creo que puedes agregar un controlador de eventos al evento mostrado en la página_cargar

function pageLoad() { var popup = $find(''ModalPopupClientID''); popup.add_shown(SetFocus); } function SetFocus() { $get(''TriggerClientId'').focus(); }

No estoy seguro si esto te ayudará con llamar desde el lado del servidor aunque


TinyMCE trabaja en el cuadro de texto invisible si lo oculta con css (visualización: ninguno;) Usted hace un evento "onclick" en TargetControlID, para init TinyMCE, si también utiliza un panel de actualización


Debe usar el valor de BehaviorID ("mpeBID") de su ModalPopupExtender.

function pageLoad() { $find(''mpeBID'').add_shown(HideMediaPlayer); } function HideMediaPlayer() { var divMovie = $get(''<%=divMovie.ClientID%>''); divMovie.style.display = "none"; }


Aquí hay una manera simple de hacerlo en el marcado:

<ajaxToolkit:ModalPopupExtender ID="ModalPopupExtender2" runat="server" TargetControlID="lnk_OpenGame" PopupControlID="Panel1" BehaviorID="SilverPracticeBehaviorID" > <Animations> <OnShown> <ScriptAction Script="InitializeGame();" /> </OnShown> </Animations> </ajaxToolkit:ModalPopupExtender>


Para dos formas modales:

var launch = false; var NameObject = ''''; function launchModal(ModalPopupExtender) { launch = true; NameObject = ModalPopupExtender; } function pageLoad() { if (launch) { var ModalObject = $find(NameObject); ModalObject.show(); ModalObject.add_shown(SetFocus); } } function SetFocus() { $get(''TriggerClientId'').focus(); }

Lado del servidor: behand

protected void btnNuevo_Click(object sender, EventArgs e) { //Para recuperar el formulario modal desde el lado del sercidor ScriptManager.RegisterStartupScript(Page, Page.GetType(), "key", "<script>launchModal(''" + ModalPopupExtender_Factura.ID.ToString() + "'');</script>", false); }


var launch = false; function launchModal() { launch = true; } function pageLoad() { if (launch) { var ModalPedimento = $find(''ModalPopupExtender_Pedimento''); ModalPedimento.show(); ModalPedimento.add_shown(SetFocus); } } function SetFocus() { $get(''TriggerClientId'').focus(); }