我怎样才能使一个总和行总价值
问题描述:
我有一个嵌套的GridView:我怎样才能使一个总和行总价值
<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我做val1和VAL 2每行的总和领域TotalRealise,我需要共TotalRealise.I尝试做一个JavaScript函数,我从CalculateSumRow调用。我尝试逐行解析第一个网格,然后第二个网格,我想获得所有totalrealise字段,并与此总和,但我收到错误当我搜索第二个网格时,我想从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);
}
}
}
有人可以帮我做这笔钱吗? 谢谢。
答
如果你使用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;
}
这会给你TotalRealise领域的总和。
答
其更好地做到这一点在你的网格的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;
}
}
+0
为什么你想在JavaScript中使用它? – JohnnBlade 2012-08-14 12:08:40
但我的领域都在最后一个identifiant,像TotalRealise1,TotalRealise2,TotalRealise3.Can我获得ID输入开始TotalRealise? – user1577242 2012-08-14 12:27:56
input [id^=“TotalRealise”]会得到所有的输入,其ID以TotalRealise开头 – 2012-08-14 13:10:34
谢谢,当我加载form.But时工作正常。但如果有人修改“val ..”字段,我重新计算行值。如何调用这个函数在每次从行重新计算之后? – user1577242 2012-08-14 14:10:16