Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何计算行总值的总和_C#_Javascript_Asp.net - Fatal编程技术网

C# 如何计算行总值的总和

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:

<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重新计算行值。每次从行重新计算后,如何调用此函数?