I have a Total column where I want to sum each row. I would like it to update on the client side as the footer does. I have a SummaryRow that totals the columns in the footer but I am trying to sum across each row. I have been Googling and searching the forums but have not found an example. Can someone please tell me how to do this. Do I need to use the UltraWebCalcManager? Thanks in advance.
This code loops through each row in the table body, then loops through each cell in the row, excluding the last column. It adds up the values in the cells and sets the value of the last cell weaver unlimited in the row to the total. The result will be a table with a "Total" column containing the sum of the values in each row.
Using the code you provided the control goes into an infinite loop when this is excuted. I have attached the whole page below. The code behind only sets WebDataGrid1.DataSoure and WebDataGrid1.DataBind()
Please advise. Thanks in advance.
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TestBed.aspx.cs" Inherits="TTFinancialProjections.TestBed" %>
<%@ Register Assembly="Infragistics35.WebUI.UltraWebCalcManager.v12.2, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb"
Namespace="Infragistics.WebUI.UltraWebCalcManager" TagPrefix="igcalc" %>
<%@ Register Assembly="Infragistics35.Web.v12.2, Culture=neutral, PublicKeyToken=7dd5c3163f2cd0cb"
Namespace="Infragistics.Web.UI" TagPrefix="ig" %>
Namespace="Infragistics.Web.UI.GridControls" TagPrefix="ig" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Testbed</title>
<script type="text/javascript">
function WebDataGrid_CellEditing_ExitedEditMode(sender, eventArgs) {
currentrow = eventArgs.getCell().get_row();
var q1 = currentrow.get_cellByColumnKey("Q1").get_value();
var q2 = currentrow.get_cellByColumnKey("Q2").get_value();
var q3 = currentrow.get_cellByColumnKey("Q3").get_value();
var q4 = currentrow.get_cellByColumnKey("Q4").get_value();
currentAmount = q1 + q2 + q3 + q4;
currentrow.get_cellByColumnKey("Total").set_value(currentAmount);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:ScriptManager ID="ScriptManager1" runat="server" />
<div>
<ig:WebDataGrid ID="WebDataGrid1" runat="server" AutoGenerateColumns="false" ShowFooter="true">
<Columns>
<ig:BoundDataField DataFieldName="Id" Key="Id" />
<ig:BoundDataField DataFieldName="Name" Key="Name" Header-Text="Item" />
<ig:BoundDataField DataFieldName="Q1" Key="Q1" Header-Text="Q1" />
<ig:BoundDataField DataFieldName="Q2" Key="Q2" Header-Text="Q2" />
<ig:BoundDataField DataFieldName="Q3" Key="Q3" Header-Text="Q3" />
<ig:BoundDataField DataFieldName="Q4" Key="Q4" Header-Text="Q4" />
<ig:UnboundField Key="Total" Header-Text="Total" />
</Columns>
<Behaviors>
<ig:Activation Enabled="true" />
<ig:EditingCore BatchUpdating="true" AutoCRUD="true">
<ig:CellEditing Enabled="true" EditModeActions-EnableF2="true" EditModeActions-MouseClick="Single" CellEditingClientEvents-ExitedEditMode="WebDataGrid_CellEditing_ExitedEditMode">
</ig:CellEditing>
</Behaviors>
</ig:EditingCore>
<ig:Selection RowSelectType="Multiple" CellClickAction="Row" Enabled="true" />
<ig:SummaryRow ShowSummariesButtons="false" FormatString="{1}" AnimationType="Linear" />
<EditorProviders>
<ig:NumericEditorProvider />
</EditorProviders>
</ig:WebDataGrid>
</div>
</form>
</body>
</html>
Hello,
I have created a small sample on your behalf where I show you how you can calculate the Total on initialize and on CellChanged event.
function WebDataGrid1_CellEditing_ExitedEditMode(sender, eventArgs) {
currentrow = eventArgs.getCell().get_row()
var item1 = currentrow.get_cellByColumnKey("Item1").get_value();
var item2 = currentrow.get_cellByColumnKey("Item2").get_value();
var item3 = currentrow.get_cellByColumnKey("Item3").get_value();
currentAmount = item1 + item2 + item3;
If you need any additional information on this matter please do not hesitate to ask.
Is there a working example I could see somwhere? I want the row total to update anytime a cell in that row is changed.
Please let me know if this works in your scnario as well.