none
Script Java no funciona con CheckBox en UpdatePanel RRS feed

  • Pregunta

  • Buen día estimados miembros del foro,

    Vengo a ustedes para solicitar ayuda respecto a un script Java que deja de funcionar cuando ingreso mi CheckBox a un updatePanel.

    En mi formulario tengo entre otros controles, el CheckBox y un Button para guardar los cambios efectuados. La idea es que cuando el CheckBox esté marcado, al presionar el botón de guardar lance una advertencia (confirm) para aceptar o no continuar con el proceso. Esto lo pude realizar gracias a una explicación brindada en el blog del Sr Leandro. Sin embargo, deseo evitar recargar la página cuando es marcado el CheckBox, por lo que opté por ingresarlo en un updatePanel. Pero a partir de entonces se pierde toda funcionalidad del script.

    Dejo en seguida parte de mi código:

            function Confirmacion(msj) {
                if (document.getElementById('<%=chBaja.ClientID%>').checked)
                {
                    var seleccion = confirm(msj);

                    //usado para que no haga postback el boton de asp.net cuando
                    //no se acepte el confirm
                    return seleccion;
                }
                else
                {
                    return;
                }
            }

        <asp:CheckBox ID="chBaja" Text="Dar de baja el bien activo" Visible="false" AutoPostBack="true" runat="server" OnCheckedChanged="chBaja_CheckedChanged" />

            protected void chBaja_CheckedChanged(object sender, EventArgs e)
            {
                if (chBaja.Checked == true)
                {
                    btnGuardar.Attributes["onclick"] = "return Confirmacion('Ha seleccionado dar de baja el activo actual. Presione en Aceptar para continuar con el proceso, o en Cancelar para regresar al formulario y desmarque la casilla correspondiente.');";
                }
                else
                {
                    btnGuardar.Attributes.Clear();
                }
            }

    Agradezco cualquier ayuda que puedan brindarme para resolver éste inconveniente.

    Un saludo

    lunes, 1 de julio de 2019 16:26

Respuestas

  • ¿Dónde está el btnGuardar? ¿Está dentro del mismo UpdatePanel que el checkbox? De lo contrario, no puede funcionar, porque lo que haces en el CheckedChanged es cambiar un atributo del botón. Pero si el checked changed se desencadena desde el UpdatePanel, esa acción solo realiza un postback parcial, en el que únicamente se envía de vuelta al navegador el contenido del updatepanel, pero no el resto de la página. Por lo tanto, el atributo del botón nunca se llega a transmitir al botón.

    • Marcado como respuesta JCamaleon lunes, 1 de julio de 2019 18:34
    lunes, 1 de julio de 2019 17:03

Todas las respuestas

  • ¿Dónde está el btnGuardar? ¿Está dentro del mismo UpdatePanel que el checkbox? De lo contrario, no puede funcionar, porque lo que haces en el CheckedChanged es cambiar un atributo del botón. Pero si el checked changed se desencadena desde el UpdatePanel, esa acción solo realiza un postback parcial, en el que únicamente se envía de vuelta al navegador el contenido del updatepanel, pero no el resto de la página. Por lo tanto, el atributo del botón nunca se llega a transmitir al botón.

    • Marcado como respuesta JCamaleon lunes, 1 de julio de 2019 18:34
    lunes, 1 de julio de 2019 17:03
  • Estimado muchas gracias, me ha funcionado de 10. El botón en efecto lo tenía fuera del updatePanel, pero por aspectos visuales me es imposible colocarle dentro del mismo panel. Opté así por colocarle su propio updatePanel al buton y problema solucionado.

    Gracias de nuevo amigo por el tiempo tomado en responder a mi consulta.

    Un saludo!

    lunes, 1 de julio de 2019 18:42