none
Pregunta, Tengo dos textbox txt_Cantidad y txt_Precio RRS feed

  • Pregunta

  • Hola amigos, necesito su ayuda !!

    Tengo dos textbox txt_Cantidad y txt_Precio, y quiero hacer que cuando este digitando el precio (aun sin perder el focus) calcule y me muestre en un label el resultado de multiplicar la cantidad por el precio.

    miércoles, 16 de septiembre de 2015 6:19

Respuestas

  • Hola, buenas.

    Dado tus requisitos una posibilidad sería implementar el evento keyUp en JavaScript y asociarlo al control txtPrecio. En la implementación de dicho evento podrías aplicar la lógica para realizar la multiplicación.

    Quedaría algo así:

    <asp:TextBox ID="txt_Precio" runat="server" ClientIDMode="Static" onkeyup="UpdatePriceLabel()"/> <asp:TextBox ID="txt_Cantidad" runat="server" ClientIDMode="Static/>

    <asp:Label ID="lbl_Total" runat="server" ClientIDMode="Static"/>

    <script>

    function UpdatePriceLabel() { var cantidad= document.getElementById("txt_Cantidad").value; var precio = document.getElementById("txt_Precio").value; document.getElementById("lbl_Total").innerHTML = cantidad * precio; }

    </script>

    Habría que validar que los controles tengan valor antes de realizar la operación, pero sería una simple comprobación dentro del script.

    Un saludo.


    When an answer is helpful, please vote as helpful, propose as answer and/or mark as answer

    miércoles, 16 de septiembre de 2015 6:51

Todas las respuestas

  • Hola, buenas.

    Dado tus requisitos una posibilidad sería implementar el evento keyUp en JavaScript y asociarlo al control txtPrecio. En la implementación de dicho evento podrías aplicar la lógica para realizar la multiplicación.

    Quedaría algo así:

    <asp:TextBox ID="txt_Precio" runat="server" ClientIDMode="Static" onkeyup="UpdatePriceLabel()"/> <asp:TextBox ID="txt_Cantidad" runat="server" ClientIDMode="Static/>

    <asp:Label ID="lbl_Total" runat="server" ClientIDMode="Static"/>

    <script>

    function UpdatePriceLabel() { var cantidad= document.getElementById("txt_Cantidad").value; var precio = document.getElementById("txt_Precio").value; document.getElementById("lbl_Total").innerHTML = cantidad * precio; }

    </script>

    Habría que validar que los controles tengan valor antes de realizar la operación, pero sería una simple comprobación dentro del script.

    Un saludo.


    When an answer is helpful, please vote as helpful, propose as answer and/or mark as answer

    miércoles, 16 de septiembre de 2015 6:51
  • Aunque la pregunta la pusiste en el foro de asp.net, realmente no hay una forma eficiente de conseguir lo que quieres desde el lado servidor, usando código de asp.net. Vas a tener que programarlo en lado cliente usando javascript. ¿Qué tal andas de conocimientos de javascript? Es una operación relativamente trivial, simplemente conecta el evento de cambio del txtPrecio y en el manejador lee el contenido de los dos textboxes deseados, multiplícalos, y escribe el resultado en la ubicación donde quieres mostrarlo (típicamente un <span>, no un label -- recuerda que estás en lado cliente y no en lado servidor).
    miércoles, 16 de septiembre de 2015 6:55
  • Perdon no especificique que estaba trabajando con asp.

    Lo quiero hacer del lado del cliente, que en la misma vista se vea el resultado automaticamente de la multiplicacion, con solo introducir los datos en los textbox.

    <asp:TextBox ID="txt_Precio" runat="server"/> <asp:TextBox ID="txt_Cantidad" runat="server"/> <asp:Label ID="lbl_Total" runat="server"/>


    Peytton Garcia

    miércoles, 16 de septiembre de 2015 7:50
  • Muchas gracias por tu ayuda, ya funciona !!

    Saludos !!


    Peytton Garcia

    miércoles, 16 de septiembre de 2015 7:55