asp.net中gridview用了AspNetPager1这个分页控件,如何合计某列的值? 如标题。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当前页你就直接取得 gridview里面所有列的值。总和的话 你自己到数据库去取得 可以在数据库里面把列的合计插入到原来表的最后一行形成一个新表,(这个可以用存储过程实现)id为合计 然后把insert into 表 列=sum(列)where id= 合计 我当前已经通过某些方法获取到了某列的合计,但是我要导出Excel中的所有数据(包括合计),但是导出Excel的总是第一页数据。 在GridView的RowDataBound事件中把要合计的数据取出来加起来,然后显示出来就可以了。 导出的时候需要把所有数据都取出来了,可以在DataTable里新加一列,然后循环取出的数据,计算出合计,然后再导出来。 合计所有行的值,可以使用DataTable和sqlDatareader读取此列的值 楼主一定是想合计当页列的值如果只是统计当前页的,使用js就能实现在控件中放一个隐藏域,然后遍历项模板,将值累加之后显示在它的脚模板中 你可以伪造一个tr 放在Gridview最下面 用CSS控制样式跟GV吻合。来统计汇总不参加分页 <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="id" Width="402px" ShowFooter="true" onrowdatabound="GridView1_RowDataBound"> <Columns> <asp:TemplateField > <HeaderTemplate>Product</HeaderTemplate> <ItemTemplate><%#Eval("Product") %></ItemTemplate> </asp:TemplateField> <asp:TemplateField > <HeaderTemplate>Version</HeaderTemplate> <ItemTemplate> <%#Eval("Version")%> </ItemTemplate> <FooterTemplate> <asp:Label ID="lbltest" runat="server"></asp:Label> </FooterTemplate> </asp:TemplateField> </Columns> </asp:GridView>protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindTest(); } } public void BindTest() { DataTable tblDatas = new DataTable("Datas"); DataColumn dc = null; dc = tblDatas.Columns.Add("ID", Type.GetType("System.Int32")); dc.AutoIncrement = true;//自动增加 dc.AutoIncrementSeed = 1;//起始为1 dc.AutoIncrementStep = 1;//步长为1 dc.AllowDBNull = false;// dc = tblDatas.Columns.Add("Product", Type.GetType("System.String")); dc = tblDatas.Columns.Add("Version", Type.GetType("System.String")); dc = tblDatas.Columns.Add("Description", Type.GetType("System.String")); DataRow newRow; newRow = tblDatas.NewRow(); newRow["Product"] = "大话西游"; newRow["Version"] = "2.0"; newRow["Description"] = "我很喜欢"; tblDatas.Rows.Add(newRow); newRow = tblDatas.NewRow(); newRow["Product"] = "梦幻西游"; newRow["Version"] = "3.0"; newRow["Description"] = "比大话更幼稚"; tblDatas.Rows.Add(newRow); GridView1.DataSource = tblDatas; GridView1.DataBind(); } private double sum = 0;//取指定列的数据和 protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e) { DataRowView drv = e.Row.DataItem as DataRowView; if (e.Row.RowIndex >= 0) { sum += Convert.ToDouble(drv["Version"]); } else if (e.Row.RowType == DataControlRowType.Footer) { e.Row.Cells[0].Text = "总薪水为:"; ((Label)e.Row.FindControl("lbltest")).Text= sum.ToString(); } } 销售单据号重复问题 textbox.Text在少数电脑上显示空白? 系统登陆登出时遇到了个奇怪的问题: VS2005中DataGrid控件还能用? 求小于65535的正则表达式,急~ cookie问题 ,各位路过的帮忙看看, 在ASP.NET中如何使DATAGRID的单元格绑定到指定的值 怎么把父窗体的值传给子窗体. 单模式文件下怎么实现编程 大家帮帮忙呀 help me!!!! sql语句问题 UrlRewriter伪静态如何隐藏form
总和的话 你自己到数据库去取得
id为合计 然后把insert into 表 列=sum(列)where id= 合计
如果只是统计当前页的,使用js就能实现
在控件中放一个隐藏域,然后遍历项模板,将值累加之后显示在它的脚模板中
DataKeyNames="id" Width="402px" ShowFooter="true"
onrowdatabound="GridView1_RowDataBound">
<Columns>
<asp:TemplateField >
<HeaderTemplate>Product</HeaderTemplate>
<ItemTemplate><%#Eval("Product") %></ItemTemplate>
</asp:TemplateField>
<asp:TemplateField >
<HeaderTemplate>Version</HeaderTemplate>
<ItemTemplate> <%#Eval("Version")%>
</ItemTemplate>
<FooterTemplate>
<asp:Label ID="lbltest" runat="server"></asp:Label>
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindTest();
}
}
public void BindTest()
{ DataTable tblDatas = new DataTable("Datas");
DataColumn dc = null;
dc = tblDatas.Columns.Add("ID", Type.GetType("System.Int32"));
dc.AutoIncrement = true;//自动增加
dc.AutoIncrementSeed = 1;//起始为1
dc.AutoIncrementStep = 1;//步长为1
dc.AllowDBNull = false;// dc = tblDatas.Columns.Add("Product", Type.GetType("System.String"));
dc = tblDatas.Columns.Add("Version", Type.GetType("System.String"));
dc = tblDatas.Columns.Add("Description", Type.GetType("System.String")); DataRow newRow;
newRow = tblDatas.NewRow();
newRow["Product"] = "大话西游";
newRow["Version"] = "2.0";
newRow["Description"] = "我很喜欢";
tblDatas.Rows.Add(newRow); newRow = tblDatas.NewRow();
newRow["Product"] = "梦幻西游";
newRow["Version"] = "3.0";
newRow["Description"] = "比大话更幼稚";
tblDatas.Rows.Add(newRow);
GridView1.DataSource = tblDatas;
GridView1.DataBind();
}
private double sum = 0;//取指定列的数据和
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
DataRowView drv = e.Row.DataItem as DataRowView;
if (e.Row.RowIndex >= 0)
{
sum += Convert.ToDouble(drv["Version"]);
}
else if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[0].Text = "总薪水为:";
((Label)e.Row.FindControl("lbltest")).Text= sum.ToString();
}
}