我的应用程序中有一个网格视图,其中有许多文本框作为模板字段,可以递增。当我在第一个文本框中输入一些值时,所有文本框的总和应该显示在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>
答案 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>