Hi,
Please do not duplicate Liateners (only one handler can be, just combine your script in one handler). Also you need to update 'initSummaryRecord' function to recalculate 'price1'
I updated example, please see the following code
<%@ Page Language="C#" %>
<%@ Register Assembly="Coolite.Ext.Web" Namespace="Coolite.Ext.Web" TagPrefix="ext" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
if (!Ext.IsAjaxRequest)
{
this.Store1.DataSource = new object[]
{
new object[] {"3m Co", 71.72, 11.72},
new object[] {"Alcoa Inc", 29.01, 21.72},
new object[] {"Altria Group Inc", 83.81, 31.72},
new object[] {"American Express Company", 52.55, 41.72},
new object[] {"American International Group, Inc.", 64.13, 51.72}
};
this.Store1.DataBind();
}
}
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title></title>
<script type="text/javascript">
var initSummaryRecord = function(){
var r = this.addRecord().record;
r.isSummary = true;
calculate(this, ['price', 'price1']);
}
var calculate = function(store, field){
if(Ext.isArray(field)){
for(var i=0;i<field.length;i++){
calculate(store,field[i]);
}
return;
}
var sum = 0,
summaryRecord;
store.each(function(r){
if(r.isSummary){
summaryRecord = r;
return;
}
sum += r.get(field);
});
summaryRecord.set(field, sum);
summaryRecord.commit();
}
var priceRenderer = function(value, meta, r){
var s = Ext.util.Format.usMoney(value);
if(r.isSummary){
s = ""+s+"";
}
return s;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<ext:ScriptManager ID="ScriptManager1" runat="server" />
<ext:Store ID="Store1" runat="server">
<Reader>
<ext:ArrayReader>
<Fields>
<ext:RecordField Name="company" />
<ext:RecordField Name="price" Type="Float" />
<ext:RecordField Name="price1" Type="Float" />
</Fields>
</ext:ArrayReader>
</Reader>
<Listeners>
<Load Fn="initSummaryRecord" />
</Listeners>
</ext:Store>
<ext:GridPanel
ID="GridPanel1"
runat="server"
StoreID="Store1"
Title="Grid"
Width="600"
Height="350"
AutoExpandColumn="Company">
<ColumnModel runat="server">
<Columns>
<ext:Column ColumnID="Company" Header="Company" Sortable="true" DataIndex="company" />
<ext:Column Header="Price" Sortable="true" DataIndex="price">
<Renderer Fn="priceRenderer" />
<Editor>
<ext:NumberField runat="server" />
</Editor>
</ext:Column>
<ext:Column Header="Price1" Sortable="true" DataIndex="price1">
<Renderer Fn="priceRenderer" />
<Editor>
<ext:NumberField runat="server" />
</Editor>
</ext:Column>
</Columns>
</ColumnModel>
<SelectionModel>
<ext:RowSelectionModel runat="server" SingleSelect="true" />
</SelectionModel>
<Listeners>
<BeforeEdit Handler="return e.record.isSummary !== true;" />
<AfterEdit Handler="if(['price','price1'].indexOf(e.field) !== -1){calculate(this.store,e.field);}" />
</Listeners>
</ext:GridPanel>
</form>
</body>
</html>