请问在ASP.NE里面,如果某一列是金额,怎么样算出这1列的总值?因为要考虑分页,这里要算出第一页的金额列的总计,第2页金额的总计,,==?

解决方案 »

  1.   

    如果你是在DataGrid里面显示数据的话,你不是已经指定了分页的显示的行数么,
    例如:是10行,可以去循环DataGrid 10次相加不就OK么
      

  2.   

    不知道楼主如何分页的,如用存储过程分页就如下:
    Create PROCEDURE dbo.Page_Change
    @PageSize int,
    @CurrentPage int,
    @pagesum money out
    AS    
        select *,IDENTITY(int,1,1) as Num into #TempAuthors from 表
        
        select * from #TempAuthors where Num > (@PageSize*@CurrentPage) and Num < (@PageSize*@CurrentPage+@PageSize+1)    select @pagesum=sum(字段) from #TempAuthors 
        
        RETURN 
      

  3.   

    建议楼主把计算金额的总和放在存储过程里。
    这样只要邦定数据就可以了,方便而且效率高。
    CREATE PROCEDURE [dbo].[proc_page] 
    (
    @PageSize int,                            --每页记录
    @PageIndex int,                           --当前页数,1开始
    @Condition varchar(8000),                 --查询条件
    @TheTable varchar(8000),                  --表名
    @SelectField varchar(8000),              --要选择的字段
    @OrderBy varchar (8000),                  --OrderBy字句,包括order,必须是主健排序在第一位
    @TableID varchar (8000)                     --table主键
    )
    AS
    begin
    declare @Sql varchar(8000)--返回记录
    if @PageIndex!=1
    begin
    set @Sql='select top ' + cast(@PageSize as varchar(10)) + ' ' + @SelectField + '  from ' + @TheTable + ' ' + @Condition + ' and '
    + @TableID +'>(select max('+@TableID+')  from  (select  top ' + cast((@PageSize*(@PageIndex-1)) as varchar(10))+' ' +@TableID+'  from ' + @TheTable + ' ' + @Condition
    + ' ' + @OrderBy +')as a) ' + @OrderBy
    end
    else
    begin
    set @Sql='select top '+ cast(@PageSize as varchar(10)) + ' ' + @SelectField+' from '+ @TheTable + ' ' + @Condition + @OrderBy
    end
    exec(@Sql)
    --返回总数
    set @Sql='select count(' + @TableID + ') from ' + @TheTable +' ' + @Condition
    exec(@Sql)
    --返回金额
    set @Sql='select sum(' + @TableID + ') from ' + @TheTable +' ' + @Condition
    exec(@Sql)
    end
    GO
      

  4.   

    前台 按时aspx 
    <asp:DataGrid id="DataGrid1" runat="server">
    <Columns>
          <asp:BoundColumn DataField="username" HeaderText="姓名"></asp:BoundColumn>
    <asp:BoundColumn DataField="post_time" HeaderText="姓"></asp:BoundColumn>
    <asp:BoundColumn DataField="content" HeaderText="问题"></asp:BoundColumn>
    <asp:BoundColumn DataField="huida" HeaderText="数字"></asp:BoundColumn>
    </Columns>
    </asp:DataGrid>
    后台cs
    private int sum=0;
    private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
    {if (e.Item.ItemIndex>=0)
    {
    sum+=int.Parse(e.Item.Cells[3].Text);
     
     
    }
    else if(e.Item.ItemType==ListItemType.Footer)
    {
    e.Item.Cells[0].Text="总和为:";
    e.Item.Cells[1].Text=sum.ToString();
    e.Item.Cells[2].Text="平均值为";
    e.Item.Cells[3].Text=((int)(sum/DataGrid1.Items.Count)).ToString(); }}