当前位置:编程学习 > C#/ASP.NET >>

DataGrid数据求和

请问有人知道如何实现将从SQL SEVER中查询到的各项数据求和后显示在DataGrid中吗?DataGrid中只要显示一行求和后的最终结果。谢谢 --------------------编程问答-------------------- 可以先在SQL语句中求和,再绑定到DataGrid中 --------------------编程问答-------------------- 可以用DATAGRID页脚合计显示。。 
public void DataGrid1_onItemDataBound(object sender, DataGridItemEventArgs e) 

  if (e.Item.ItemType == ListItemType.Item ¦ ¦ e.Item.ItemType == ListItemType.AlternatingItem) 
  { 
   CalcTotal( e.Item.Cells[1].Text ); 
   e.Item.Cells[1].Text = string.Format("{0:c}", Convert.ToDouble(e.Item.Cells[0].Text)); 
  } 
  else if(e.Item.ItemType == ListItemType.Footer ) 
  { 
   e.Item.Cells[0].Text="Total"; 
   e.Item.Cells[1].Text = string.Format("{0:c}", runningTotal); 
  } 


private void CalcTotal(string _price) 

  try 
  { 
   runningTotal = runningTotal + Double.Parse(_price); 
  } 
  catch 
  { 
   //捕获错误 
  } 



DataGrid1_onItemDataBound 要绑定在前台aspx页面下  --------------------编程问答-------------------- 在RowDataBound事件里添加求和

protected void gvCount_RowDataBound(object sender, GridViewRowEventArgs e)
{
   if (e.Row.RowType == DataControlRowType.DataRow)
   {
       //求和操作
   }
   if (e.Row.RowType == DataControlRowType.Footer)
   {
       //显示总和
   }
}


这个是以前写的了,不好之处是每行绑定时都要计算,觉得效率有些低。 --------------------编程问答-------------------- 不用。直接在gridview里边设置最好一个字段。我给你贴一段代码是我做的求%的应用。
<Columns>
        <asp:BoundField DataField="khdx" HeaderText="考核对象" SortExpression="khdx" />
        <asp:BoundField DataField="fz" HeaderText="当月得分" SortExpression="khdx" />
        <asp:BoundField DataField="jcfz" HeaderText="满分为" SortExpression="khdx" />
            <asp:TemplateField HeaderText="百分比">
                <ItemTemplate>
                    <aspabel ID="Label1" runat="server" Text='<%# Convert.ToInt32(DataBinder.Eval(Container.DataItem,"fz").ToString())*100/Convert.ToInt32(DataBinder.Eval(Container.DataItem,"jcfz").ToString())+"%" %>'></aspabel>
                </ItemTemplate>
            </asp:TemplateField>
            <asp:TemplateField>
                <ItemTemplate>
                    <asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%#"report_monthdetail.aspx?khdx="+Server.UrlEncode(DataBinder.Eval(Container.DataItem,"khdx").ToString())%>'
                        Text="详细信息"></asp:HyperLink>
                </ItemTemplate>
            </asp:TemplateField>
        </Columns>

楼上的明白了吗? --------------------编程问答-------------------- 忘了补充一句。我做的是求%的。。你自己发挥改成相加吧。 --------------------编程问答-------------------- 可以利用datatable.compute()方法 生成一汇总数据行
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,