获取gridview文本框值的总和,并使用javascript在标签中显示总数

时间:2016-12-15 08:02:59

标签: javascript c# jquery asp.net gridview

我的应用程序中有一个网格视图,其中有许多文本框作为模板字段,可以递增。当我在第一个文本框中输入一些值时,所有文本框的总和应该显示在Label中。我试过使用下面的代码,但它没有用。

的JavaScript

<script type="text/javascript">
    function calculate() {
        var txtTotal = 0.00;

        $(".calculate").each(function (index, value) {
            var val = value.value;
            val = val.replace(",", ".");
            txtTotal = MathRound(parseFloat(txtTotal) + parseFloat(val));
        });

        document.getElementById("<%= lbltotal.ClientID %>").value = txtTotal.toFixed(2);
    }

    function MathRound(number) {
        var result = Math.round(number * 100) / 100;
        return result;
    }
</script>

GridView的

<asp:GridView ID="GridView1" runat="server" ShowFooter="true" AutoGenerateColumns="false">
    <Columns>
        <asp:BoundField DataField="RowNumber" HeaderText="Row Number" />
        <asp:BoundField DataField="Description" HeaderText="Item Description" />
        <asp:TemplateField HeaderText="Amount">
            <ItemTemplate>
                <asp:TextBox ID="txtamount" onkeyup="calculate();" CssClass="calculate" runat="server" Text=""></asp:TextBox>
            </ItemTemplate>

        </asp:TemplateField>
    </Columns>
</asp:GridView>

标签

<asp:Label ID="lbltotal" runat="server" Text="" ForeColor="Green"></asp:Label>

1 个答案:

答案 0 :(得分:1)

使用此代码段。它为GridView1中的每个TextBox添加了一个keyup侦听器。然后它循环所有TextBox并添加值并将总数放在Label1

<script type="text/javascript">
    var total = 0;

    $(document).ready(function () {
        $('#<%= GridView1.ClientID %> input[type="text"]').keyup(function () {
            $('#<%= GridView1.ClientID %> input[type="text"]').each(function () {
                if ($(this).val() != "") {
                    total += parseFloat($(this).val());
                }
            });
            document.getElementById("<%= Label1.ClientID %>").innerHTML = total.toFixed(2);
        });
    });
</script>