none
Asignar valor a ASP:Label desde javascript RRS feed

  • Pregunta

  • Hola, estoy intentando pasar un valor capturado con JavaScript a una ASP:Label y no lo consigo. Si lo paso a un ASP:TextBox si funciona. El código javascript que uso es el siguiente:

       <script language="javascript" type="text/javascript"> 
                function recuperarUsuario() { 
                    var WinNetwork = new ActiveXObject "WScript.Network"); 
                    var username = WinNetwork.UserName; 
                    document.getElementById("<%=txtUsuarioLogon.ClientID %>").value = username; 
                    document.getElementById("<%=lb_UsuCod.ClientID %>").value = username; 
                } 
            </script>

    Y el HTML

    <!-- AQUI VISUALIZA LA NUEVA RUTINA DE CAPTURA DE USUARIO --> 
    <asp:TextBox ID="txtUsuario" runat="server" CssClass="HiddenColumn"></asp:TextBox> 
    <asp:TextBox ID="txtUsuarioLogon" runat="server" CssClass="HiddenColumn"></asp:TextBox> 
    <asp:Label ID="lblValidando" runat="server" Text="Validando usuario...."></asp:Label> 
    <asp:Label ID="lb_UsuCod" runat="server" Visible="true"></asp:Label>
                                
    <script language="javascript" type="text/javascript"> 
         recuperarUsuario(); 
    </script>

    No hay manera de conseguir que cambie el ASP:Label.

    Gracias, Jaume


    Jaume

    miércoles, 20 de junio de 2018 11:09

Respuestas

  • No hay manera de conseguir que cambie el ASP:Label.

    Efectivamente, no hay manera de cambiar desde javascript un asp:label. Y tampoco un asp:textbox. Lo que puedes cambiar desde javascript es el HTML resultante despues de que en el lado servidor se procese el asp:label o el asp:textbox. En el caso del asp:textbox da la casualidad de que el procesarlo se genera un "input" de html que tiene un ID que puedes encontrar con el GetElementById. Pero en el caso del asp:Label, no se genera HTML con ID, por lo que no lo puedes encontrar mediante getElementById. Usa la opcion de "ver fuente" en el navegador para ver lo que ha generado, y entonces escribe javascript que busque sobre ese HTML (no sobre el ASP que originalmente dio lugar a ese HTML).
    miércoles, 20 de junio de 2018 11:22

Todas las respuestas

  • No hay manera de conseguir que cambie el ASP:Label.

    Efectivamente, no hay manera de cambiar desde javascript un asp:label. Y tampoco un asp:textbox. Lo que puedes cambiar desde javascript es el HTML resultante despues de que en el lado servidor se procese el asp:label o el asp:textbox. En el caso del asp:textbox da la casualidad de que el procesarlo se genera un "input" de html que tiene un ID que puedes encontrar con el GetElementById. Pero en el caso del asp:Label, no se genera HTML con ID, por lo que no lo puedes encontrar mediante getElementById. Usa la opcion de "ver fuente" en el navegador para ver lo que ha generado, y entonces escribe javascript que busque sobre ese HTML (no sobre el ASP que originalmente dio lugar a ese HTML).
    miércoles, 20 de junio de 2018 11:22
  • Otro detalle que debería comprobar:  Me parece que los Label generan elementos <span> en HTML, pero lo que no recuerdo bien es si lo generan aún si no contienen nada.  Si su Label no tiene nada a la hora de renderizarse a HTML, podría ser que no se renderice nada del todo.  Verifique esto en caso de que sea su caso.

    Jose R. MCP
    My GIT Repositories | Mis Repositorios GIT

    miércoles, 20 de junio de 2018 11:25
    Moderador
  • Pues si que se genera siempre y cuando le asignes un Id en las propiedas al objeto asp:Label, lo que pasa es que la mayoría de las veces en las label uno no coloca Id. Para estar seguro de que el nombre se obtenga con getElementById se  puede establecer la propiedad ClientIDMode="Static".
    miércoles, 20 de junio de 2018 11:41