C# 如何计算行总值的总和
我有一个嵌套的gridview:C# 如何计算行总值的总和,c#,javascript,asp.net,C#,Javascript,Asp.net,我有一个嵌套的gridview: <gridview id="gvParent" runat="server" > <Columns> <asp:TemplateField> <ItemTemplate> <asp:Label Id="name" runat="server" Text='<%# Eval("Name")%>' /> <gridview id="gv
<gridview id="gvParent" runat="server" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Label Id="name" runat="server" Text='<%# Eval("Name")%>' />
<gridview id="gvChild" runat="server" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<input type="text" id="Val1'<%# Eval("Identifiant")%>'" value='<%# Eval("Val1">' onchange= "CalculateSumRow(Val2'<%# Eval("Identifiant")%>');"/>
</ItemTemplate>
</asp:TemplateField>
<gridview id="gvChild" runat="server" >
<Columns>
<asp:TemplateField>
<ItemTemplate>
<input type="text" id="Val2'<%# Eval("Identifiant")%>'" value='<%# Eval("Val2")%>' onchange="CalculateSumRow(Val2'<%# Eval("Identifiant")%>');"/>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<input type="text" id="TotalRealise<%# Eval("Identifiant")%>'" value='<%# Eval ("TotalRealise")%>'/>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</gridview>
</ItemTemplate>
</asp:TemplateField>
</Columns>
在javascript函数CalculateSumRow中,我在字段TotalRealize中计算每行的val1和VAL2之和,我需要总计字段TotalRealize。我尝试创建一个javascript函数,我从CalculateSumRow调用该函数。我尝试在第一个网格中逐行解析,然后第二个网格,我想得到所有TotalRealize字段,并用它求和,但我在搜索第二个网格时收到错误。我想用javascript进行计算
function CalculateSumRow (identifiant)
{
......
CalculateTotal();
}
function CalculateTotal()
{
var grdPar=document.getdocumentById('<%= gvParent%>');
for(row=1;row<grdPar.rows.length;row++)
{
var grdChild=document.getdocumentById('<%= gvChild%>');
for(rowC=1;row<grdChild.rows.length;rowC++)
{
alert(grdChild.rows[rowc].cell[3].value);
}
}
}
函数CalculateSumRow(标识)
{
......
计算总数();
}
函数计算器总计()
{
var grdPar=document.getdocumentById(“”);
对于(row=1;row,如果您对使用jQuery感到满意,请尝试以下方法:
$(function(){
var sum = 0;
$("input[id^="TotalRealise"]").each(function(){
sum = sum + parseFloat($(this).val());
});
});
在输入值的更改事件中调用以下函数:
function CalculateTotalRealise()
{
var sum = 0;
$("input[id^="TotalRealise"]").each(function(){
sum = sum + parseFloat($(this).val());
});
return sum;
}
这将为您提供TotalRealize字段的总和。最好在网格的OnRowDataBound事件中这样做
double totalSum = 0;
protected void OnRowDataBound(object sender, GridViewRowEventArgs e)
{
int columnValue = 0;
// get the value from column index 0, can be any other index where you have your value
int.TryParse(e.Row.Cells[0].Text, out columnValue);
if (columnValue > 0)
{
totalSum = totalSum + columnValue;
}
}
为什么要在javascript中使用它?但是我的字段末尾有一个标识,比如TotalRealize1、TotalRealize2、TotalRealize3。我可以从TotalRealize开始输入id吗?输入[id^=“TotalRealize”]将获得id以TotalRealize开始的所有输入谢谢,在我加载表单时工作正常。但是如果有人修改“val…”字段I重新计算行值。每次从行重新计算后,如何调用此函数?