This is a migrated thread and some comments may be shown as answers.

How to display sum of template column in group footer

1 Answer 290 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Amol
Top achievements
Rank 2
Amol asked on 07 May 2009, 05:13 AM
Hi,

In Rad grid I want to use Group Footer that calculate average percentage of every column in a group , In my project I need to use GridTemplate column on a grid so can you tell me that how do I apply Group Footer in rad grid using GridTemplate column?

Thanks,
Amol

1 Answer, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 07 May 2009, 08:12 AM
Hello Amol,

Try out the following code snippet for showing group footer for template column.

ASPX
 
<telerik:radgrid id="RadGrid1" runat="server" allowpaging="True" ShowFooter="true" ShowGroupPanel="true" datasourceid="SqlDataSource1" Skin="Office2007" OnPreRender="RadGrid1_PreRender">  
<MasterTableView DataSourceID="SqlDataSource1" AutoGenerateColumns="False" ShowGroupFooter="True">  
<Columns> 
   . . .  
<telerik:GridTemplateColumn UniqueName="TempCol" > 
  <ItemTemplate> 
    <asp:Label ID="Label1" Text='<%# Eval("Number") %>' runat="server">  
    </asp:Label> 
  </ItemTemplate> 
</telerik:GridTemplateColumn> 
   . . .  
</Columns> 
</MasterTableView> 
<ClientSettings AllowDragToGroup="True">  
</ClientSettings> 
</telerik:radgrid> 

CS
protected void RadGrid1_PreRender(object sender, EventArgs e)  
{  
    int num, avg = 0, total = 0;  
    int length = RadGrid1.MasterTableView.GetItems(GridItemType.GroupHeader).Length;  
    for (int i = 0; i < length; i++)  
    {  
        GridGroupHeaderItem groupHeader = (GridGroupHeaderItem)RadGrid1.MasterTableView.GetItems(GridItemType.GroupHeader)[i];  
        GridItem[] children = groupHeader.GetChildItems();  
        num = 0; total = 0;  
        foreach (GridItem child in children)  
        {  
            GridDataItem dataItem = child as GridDataItem;  
            total = total + Convert.ToInt32((child.FindControl("Label1"as Label).Text);  
            num++;  
            GridTableView tableView = (GridTableView)dataItem.NamingContainer;  
        }  
        avg = total / num;  
        GridGroupFooterItem groupfooter = (GridGroupFooterItem)RadGrid1.MasterTableView.GetItems(GridItemType.GroupFooter)[i];  
        groupfooter.Cells[(RadGrid1.MasterTableView.GetColumn("TempCol").OrderIndex) + 1].Text = avg.ToString();  
    }  

Thanks,
Princy.
Tags
Grid
Asked by
Amol
Top achievements
Rank 2
Answers by
Princy
Top achievements
Rank 2
Share this question
or