trigger - updatepanel asp.net ejemplos
ASP.NET-UpdatePanel y JavaScript (6)
El método Sys.WebForms.PageRequestManager.getInstance () funciona muy bien para mí también.
Trabajo con muchas páginas que contienen varios paneles de actualización y he aprendido que esto se activará automáticamente incluso si Updatepanel no lo quiere para renovaciones. Por lo tanto, dentro de la función que se activa en el evento, asegúrese de tener algo como:
function BeginRequestHandler(sender, args) {
if (args.get_postBackElement().id == "ID of the Updatepanel") {
// do stuff here
¿Hay alguna forma de ejecutar script cuando finaliza un proceso de UpdatePanel?
Tengo una página que permite "insertar", "copiar" y "editar" un registro. Todo esto se hace en un UpdatePanel para evitar una navegación de página. En otro lugar de la página me gustaría imprimir un mensaje "flash", como "Ha ingresado correctamente un registro". No está cerca del UpdatePanel y me gustaría utilizar un efecto jQuery en el mensaje para que desaparezca después de 4 segundos. ¿Cómo puedo enviar una secuencia de comandos con UpdatePanel o hacer que se ejecute después de una actualización de UpdatePanel? ¿Debo escribir script en un asp: literal? pensamientos?
Bruno,
Primero, para responder a tu pregunta directa. En la devolución de llamada que llama el panel de actualización, debe poder utilizar una llamada RegisterStartupScript para invocar un método JS. Luego, en su método JS, mostraría el mensaje y luego puede usar do a:
setTimeout(''$(''#myMessage'').fadeOut("slow")'', 4000);
hacer que se desvanezca después de 4 segundos.
Para ir un paso más allá, dado que ya está implementando JavaScript, lo invito a ver este artículo sobre UpdatePanels . De ser posible, trataría de enviar llamadas Ajax para hacer su inserción, copia y edición, lo que simplificaría aún más los comentarios de los usuarios y evitaría el exceso de información a través del cable.
Esto debería funcionar:
<script type="text/javascript">
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(BeginRequestHandler);
prm.add_endRequest(EndRequestHandler);
function BeginRequestHandler(sender, args)
{
//Jquery Call
}
function EndRequestHandler(sender, args)
{
//Jquery Call
}
</script>
Aquí hay un artículo sobre cómo hacerlo usando el método estático de ScriptManager RegisterClientScriptBlock. Lo intenté y funciona como un encanto.
http://csharperimage.jeremylikness.com/2009/06/inject-dynamic-javascript-into-aspnet.html
var requestManager = Sys.WebForms.PageRequestManager.getInstance();
requestManager.add_beginRequest(function () { alert(''here1'') });
requestManager.add_endRequest(function () { alert(here2'') });