获取gridview文本框值的总和,并显示使用javascript标签中的总数
问题描述:
我在我的应用程序中有一个网格视图,其中一些文本框作为模板字段,可以递增。当我在第一个文本框中输入一些值时,所有文本框都应显示在标签中。我试图使用下面的代码,但它没有奏效。获取gridview文本框值的总和,并显示使用javascript标签中的总数
的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>
答
使用此片段。它将一个keyup
侦听器添加到GridView1中的每个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>
只是在你的浏览器控制台检查任何JavaScript错误 –
没有成立 – Ayman
将警报在'calculate'方法错误。 –