none
Mostrar Mensaje(alert) en pagina que contiene masterpage RRS feed

  • Pregunta

  • Buenas tardes, he elaborado una masterpage que contiene el menu que va a estar presente en todas las paginas, lo malo es que cuando intento mostrar un mensaje en alguna de las paginas que contiene el masterpage no lo muestra, siempre he usado el mismo codigo de javascript pero ahora ya no me funciona, el cual es este.

    <script type="text/javascript">
           function MostrarMensaje() {
               var mensaje = document.getElementById("__mensaje").value;
               if (mensaje != "") {
                   alert(mensaje);
                   if (document.getElementById("__pagina").value != "")
                       location.href = document.getElementById("__pagina").value;
               }
           }
    
           function window_load() {
               MostrarMensaje()
           }
            </script>


    y lo cargo en body

    <body onload="MostrarMensaje()">
    
    <%-- HiddenField que uso para mostrar el mensaje y la pagina a la que me va a direccionar--%>
    
      <asp:HiddenField ID="__mensaje" runat="server" />
     <asp:HiddenField ID="__pagina" runat="server" />
    
    </body>

    A continuacion dejo un link que me permite la descarga del proyecto que deseo realizar

    https://www.mediafire.com/file/vqo52q49znfcbda/MensajeMasterPage%28social_msdn%29.zip/file

    jueves, 14 de marzo de 2019 6:11

Respuestas

  • CUando la página esté cargada en el navegador, usa la F12 para ver el fuente y busca tus campos hidden. Probablemente te encontrarás con que ASP.NET les ha generado un ID más complejo, que no es el que tú escribiste. Por eso el getElementById que has puesto en el javascript no los encuentra.

    Si no los vas a manipular desde el code-behind, puedes usar un <input type="hidden"> en lugar del <asp:HiddenField>, y entonces no te cambia el ID. De lo contrario, puedes usar NombreDelControl.ClientId para averiguar el valor que te genera realmente para el ID en tiempo de ejecución.

    jueves, 14 de marzo de 2019 7:09
  • Hola  cuando usas un masterpage, los id de los elementos contenidos cambian, prueba utilizando el clientid

    <script type="text/javascript">
           function MostrarMensaje() {
               var mensaje = document.getElementById('<%=__mensaje.ClientId%>').value;
               if (mensaje != "") {
                   alert(mensaje);
                   if (document.getElementById('<%=__pagina.ClientId%>').value != "")
                       location.href = document.getElementById('<%=__pagina.ClientId%>')).value;
               }
           }
    
           function window_load() {
               MostrarMensaje()
           }
            </script>



    Votar y marcar respuestas es agradecer.
    Saludos.
    Lima-Perú

    jueves, 14 de marzo de 2019 16:21

Todas las respuestas

  • CUando la página esté cargada en el navegador, usa la F12 para ver el fuente y busca tus campos hidden. Probablemente te encontrarás con que ASP.NET les ha generado un ID más complejo, que no es el que tú escribiste. Por eso el getElementById que has puesto en el javascript no los encuentra.

    Si no los vas a manipular desde el code-behind, puedes usar un <input type="hidden"> en lugar del <asp:HiddenField>, y entonces no te cambia el ID. De lo contrario, puedes usar NombreDelControl.ClientId para averiguar el valor que te genera realmente para el ID en tiempo de ejecución.

    jueves, 14 de marzo de 2019 7:09
  • Hola  cuando usas un masterpage, los id de los elementos contenidos cambian, prueba utilizando el clientid

    <script type="text/javascript">
           function MostrarMensaje() {
               var mensaje = document.getElementById('<%=__mensaje.ClientId%>').value;
               if (mensaje != "") {
                   alert(mensaje);
                   if (document.getElementById('<%=__pagina.ClientId%>').value != "")
                       location.href = document.getElementById('<%=__pagina.ClientId%>')).value;
               }
           }
    
           function window_load() {
               MostrarMensaje()
           }
            </script>



    Votar y marcar respuestas es agradecer.
    Saludos.
    Lima-Perú

    jueves, 14 de marzo de 2019 16:21
  • Gracias por las respuestas ambas funcionan.
    viernes, 15 de marzo de 2019 19:31