Desactivar un evento de clic de botón asp.net dinámico durante la devolución de datos y permitir que posteriormente

StackOverflow https://stackoverflow.com/questions/2153586

Pregunta

Estoy creando un botón de forma dinámica en mi código y adjuntando un evento de clic a ella. Sin embargo tengo que evitar que la gente haga clic en él, mientras que hay un proceso pasando. Así que cuando se hace clic una vez, debe ser desactivado y cuando finaliza el proceso debe ser permitido. ¿Cómo puedo hacer eso?

Gracias.

¿Fue útil?

Solución

onclick = "this.enabled = false" añadir esta información de su código detrás de tu control

btnAdd.Attributes.Add ( "onclick", "this.enabled = false;");

Este enlace explica con detalle http: / /encosia.com/2007/04/17/disable-a-button-control-during-postback/

Otros consejos

Si va a procesar a través de AJAX cuando el botón está clicked- 1. Desactive el botón cuando se inicia el procesamiento 2. Activar el botón después de procesar la ultima

Si las devoluciones de datos de los botones, la mejor manera es desactivar el botón cuando se hace clic a través de JavaScript [no voy a sugerir jQuery sólo para esta tarea en particular]. Puesto que después de la devolución de datos en el botón se activará como lo era antes, usted no tiene que preocuparse acerca de la habilitación.

    <asp:Button ID="btn" runat="server" OnClientClick="disable(this)"
Text="Click me!" OnClick="btn_Click" />

 <script type="text/javascript">
        function disable(control)
        {
            control.disabled="disabled";
            //added alert to give the snapshot of what happens
            //when the button is clicked
            alert(100);
        }
 </script>

Espero que esto ayude.

Yo usaría un UpdatePanel arround el botón. Al hacer clic se puede ServerSide deshabilitar el botón. Utilizar un disparador en el UpdatePanel que se ve cada x segundos si el proceso externo ha vuelto resultado. Y yo le aconsejaría a la fuente de procesos de larga ejecución en un servicio de Windows.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top