可以先在SQL语句中求和,再绑定到DataGrid中

解决方案 »

  1.   

    可以用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页面下 
      

  2.   

    在RowDataBound事件里添加求和protected void gvCount_RowDataBound(object sender, GridViewRowEventArgs e)
    {
       if (e.Row.RowType == DataControlRowType.DataRow)
       {
           //求和操作
       }
       if (e.Row.RowType == DataControlRowType.Footer)
       {
           //显示总和
       }
    }
    这个是以前写的了,不好之处是每行绑定时都要计算,觉得效率有些低。
      

  3.   

    不用。直接在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>楼上的明白了吗?
      

  4.   

    可以利用datatable.compute()方法 生成一汇总数据行