2009-12-15 16 views
5

En la página Asp.NET aspx, hay un botón para guardar datos, cuando el usuario haga clic en este botón, quiero: 1. Deshabilitar este botón inmediatamente 2. A continuación, llame al código detrás de la función Guardar() para guardar los datos nuevamente DB 3. Luego habilite este botón nuevamente.¿Cómo ejecutar el código del lado del cliente y del servidor para el mismo botón?

Lo que hice de la siguiente manera:

  1. función JS en APSX:

    función DisableSave() { SaveButton = document.getElementById ('<% = btnSave.ClientID%>'); saveButton.disabled = true; devuelve falso; }

  2. guión Botón:

    < --- asp: Button ID = "btnSave" bajo petición = "Button_Command" runat = CommandName "Guardar" = "servidor" Text = "Guardar" OnClientClick =" javascript: DisableSave(); "/>

  3. En el código detrás de la función Guardar() (supuestamente llamado por CommandName), configure la opción Volver a habilitar el botón Guardar.

Pero cuando ejecuto el código, solo desactivo el botón de guardar, el código detrás de la llamada no ocurrió.

¿Cómo corregirlo?

+0

¿estás utilizando IE? –

+0

Incluso elimino return false; todavía obtiene el mismo resultado, no hay código detrás de la llamada. IE/FF mismo resultado. – KentZhou

+0

Hola chicos, mi botón está dentro de UpdatePanel para una actualización parcial. Algo parece no como se esperaba. – KentZhou

Respuesta

3

Parece que algunos navegadores (IE) no procesarán la acción de envío de un botón si está deshabilitado. Intenté esto en Firefox y lo hice en postback, pero no tuve suerte con IE. Una solución alternativa, aunque no proporciona comentarios de los usuarios, sería hacer OnClientClick="this.onclick= function() { return false; }". Eso evitará, al menos, que ocurran más devoluciones de datos.

EDITAR: onClick necesitaba ser una función, no una cadena.

+0

esto detendría por completo la publicación. No se puede llamar al código detrás de la función. – KentZhou

+0

Esto no evitará que la devolución de datos suceda la primera vez. Evitará que el navegador vuelva a publicar MÁS veces aunque el usuario empiece a hacer clic como loco. –

2

El problema es que deshabilitar el botón mediante JavaScript en el evento onclick impide que se produzca la devolución de datos.

Una solución simple se ilustra en el artículo this CodeProject.

Cuestiones relacionadas