Как рассчитать сумму столбцов GridView с помощью JavaScript? - PullRequest
0 голосов
/ 09 июня 2011

У меня есть GridView с тремя столбцами, которые будут выглядеть следующим образом:

 ID                  Sign                Amount
------              --------             ---------
 1                    +                   1000
 2                    -                    500
 3                    -                    750

Таким образом, сумма столбца «Сумма» должна быть «-250».Рассмотрим столбец «Знак» также с суммой.Вот исходный код моего GridView:

 <Columns> 
  <asp:BoundField DataField="ID" HeaderText="ID"/>
       <asp:TemplateField HeaderText="Sign" >
        <ItemTemplate>
 <asp:TextBox ID="txtgvSign" runat="server" Text='<%# Bind("Sign") %>'></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
 <asp:TemplateField HeaderText="Amount">
  <ItemTemplate>
 <asp:TextBox ID="txtAmount" runat="server" Text='<%# Bind("Amount") %>'></asp:TextBox>  
</ItemTemplate>
</asp:TemplateField>
</Columns> 

До сих пор я написал один JavaScript, но он рассчитывает только сумму.Я не знаю, как рассчитать сумму на основе значений знака.Ниже приведен JavaScript, который я написал:

  function CalculateTax(fixedtotal)
  {
    var taxgrid = document.getElementById('<%=gvAttribute.ClientID %>');
    var taxip = taxgrid.getElementsByTagName('input');
    var taxamount = 0*1;

    for(i = 0; i < taxip.length; i++)
    {
        var tax = taxip[i].value;            
        taxamount = parseFloat(taxamount) + parseFloat(tax);
    }
    return parseFloat(fixedtotal) + parseFloat(taxamount);
  }

Так что, пожалуйста, внесите изменения в этот Javascript.

Ответы [ 2 ]

2 голосов
/ 09 июня 2011

вы можете попробовать приведенный ниже код?

  function CalculateTax(fixedtotal)
  {
    var taxgrid = document.getElementById('<%=gvAttribute.ClientID %>');
    var taxip = taxgrid.getElementsByTagName('input');
    var taxamount = 0*1;

    for(i = 0; i < taxip.length; i+= 2)
    {
        var sign = taxip[i].value;            
        var tax = taxip[i+1].value; 
        taxamount = parseFloat(taxamount) + (sign =='+' ? 1 : -1)* parseFloat(tax);
    }
    return parseFloat(fixedtotal) + parseFloat(taxamount);
  }
0 голосов
/ 21 июня 2013
<script language="javascript" type="text/javascript">
    function Calculate() {

        var grid = document.getElementById("<%=grid.ClientID%>");
        var sum = 0;
        for (var i = 1; i < grid.rows.length; i++) {
            var Cell = grid.rows[i].getElementsByTagName("input");
            if (!Cell[4].value) {sum += 0; } else { sum += parseFloat(Cell[0].value);}
        }

        alert(sum);        
    }

</script> 



<asp:TemplateField HeaderText="Current payment" >
<ItemTemplate>
    <asp:TextBox ID="txtvalue" runat="server" Width="70px" BorderStyle="None" onkeyup="Calculate();" ></asp:TextBox>
</ItemTemplate>
<ItemStyle Width="120px" />
</asp:TemplateField>`enter code here`
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...