把你的和放在 footer 应该行吧

解决方案 »

  1.   

    你可以在绑定前对dataset里求和啊。
      

  2.   

    ds.Tables[0].Compute("sum(InNumber)","").ToString();
    计算DataSet中一列数据("InNumber")的和
      

  3.   

    放在 footer 不行,我想renrenqq(ddlly)所说的这种方法应该可以,我试试看,再来给分
      

  4.   

    怎样动态取得footer的各个单元格?
      

  5.   

    要在dataset里做,或者store procedure多放一个返回值
      

  6.   

    <%@ Page Language="VB" AutoEventWireup="True" Debug="true"%>
    <%@ Import Namespace="System.Data" %>
    <%@ Import Namespace="System.Data.OleDb" %>
    <html>
       <script runat="server">
         dim MyConnection as OleDbConnection
         dim cmdSelect as OleDbCommand
         dim dtrReader as OleDbDataReader
     dim runningTotal as double = 0      Sub Page_Load(sender As Object, e As EventArgs) 
          MyConnection = New OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" + Server.MapPath(".")+"/db/data.mdb")         If Not IsPostBack Then 
                BindGrid()
             End If
          End Sub      Sub BindGrid() 
          Dim MyCommand As OleDbDataAdapter = new OleDbDataAdapter("SELECT name,count FROM [min2]", MyConnection)
              Dim DS As DataSet = new DataSet()
              MyCommand.Fill(DS,"min2") 
              MyDataGrid.DataSource =DS.Tables("min2").DefaultView
              MyDataGrid.DataBind()
          End Sub   Sub MyDataGrid_ItemDataBound( sender as object, e as DataGridItemEventArgs )
             if (e.Item.ItemType = ListItemType.Item or e.Item.ItemType = ListItemType.AlternatingItem) then   
               CalcTotal( e.Item.Cells(1).Text )
               'e.Item.Cells(1).Text = string.Format("{0:c}", Convert.ToDouble(e.Item.Cells(1).Text))
             else if(e.Item.ItemType = ListItemType.Footer ) then   
                e.Item.Cells(0).Text="Total"
                e.Item.Cells(1).Text = runningTotal
                e.Item.Cells(1).HorizontalAlign = HorizontalAlign.Right
             end if
           End Sub    Sub CalcTotal(_price)
               runningTotal += Double.Parse(_price)
           End Sub
     </script>
    <body>
    <Form runat="server">
    <asp:DataGrid id="MyDataGrid" runat="server" 
      Width="300"
      AutoGenerateColumns="False"
      CellPadding="4" 
      CellSpacing="0"
      BorderStyle="Solid" 
      BorderWidth="1"
      ItemStyle-Font-Name="Verdana"
      ItemStyle-Font-Size="9pt"
      HeaderStyle-Font-Name="Verdana"
      HeaderStyle-Font-Size="10pt"
      HeaderStyle-Font-Bold="True"
      HeaderStyle-ForeColor="White"
      HeaderStyle-BackColor="Blue"
      FooterStyle-Font-Name="Verdana"
      FooterStyle-Font-Size="10pt"
      FooterStyle-Font-Bold="True"
      FooterStyle-ForeColor="White"
      FooterStyle-BackColor="Blue"
      ShowFooter="True"
      OnItemDataBound="MyDataGrid_ItemDataBound">
      <Columns>
        <asp:BoundColumn HeaderText="Title" DataField="name"/>
        <asp:BoundColumn HeaderText="Price" DataField="count" 
          ItemStyle-HorizontalAlign="Right"
          HeaderStyle-HorizontalAlign="Center" />
       </Columns>
    </asp:DataGrid>
    </Form>
    </body>
    </html>
      

  7.   

    同意zengzhi318(zengzhi) 
    在绑定前对dataset里求和比较好
      

  8.   

    在绑定前对dataset里求和是比较好,这个可以做到,
    问题是怎样把结果显示在页脚栏?
      

  9.   

    可以了,各位: 
    DataGrid1.Columns(2).FooterText = 
        String.Format("{0:#,0}", objds.Tables(0).Compute("sum(字段)", ""))