GridView1 footer求和
//
ShowFooter="True"
private double sum = 0;//取指定列的数据和,你要根据具体情况对待可能你要处理的是int
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowIndex >= 0)
{
sum += Convert.ToDouble(e.Row.Cells[5].Text)
}
if (e.Row.RowIndex >= 0)
{
sum += Convert.ToDouble(e.Row.Cells[5].Text);
}
else if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[4].Text = "总价格为:";
e.Row.Cells[5].Text = sum.ToString();
e.Row.Cells[2].Text = "平均价格为:";
e.Row.Cells[3].Text = ((int)(sum / GridView1.Rows.Count)).ToString();
}
}
1、先在顶部声明公共变量
private float production_Cost = 0;
2、然后将Gridview的【ShowFooter】属性设置为【true】。
3、再在Gridview的【RowDataBound】事件中写道:
protected void Gridview_RowDataBound(object sender, GridViewRowEventArgs e)
{
DataRowView drv = (DataRowView)e.Row.DataItem;
if (e.Row.RowType == DataControlRowType.DataRow)
{
production_Cost += float.Parse(drv["totalCosts"].ToString());
}
if (e.Row.RowType == DataControlRowType.Footer)
{
e.Row.Cells[11].Text = "小計:";
//e.Row.Cells[12].Text = Math.Round(production_Cost, 5).ToString();
e.Row.Cells[12].Text = production_Cost.ToString();
}
}
if(e.Row.RowType==DataControlRowType.Footer)
{
GridViewRow headrow = GridView1.HeaderRow;
GridViewRow footerrow = GridView1.FooterRow;
for (int j = 0; j < headrow.Cells.Count - 1; j++)
{
string headfield = headrow.Cells[j].Text;
foreach (string b in All_Field)
{
if (headfield.Contains(b))
{
string sumnum = dssumresult.Tables[0].Rows[0][headfield].ToString();
footerrow.Cells[j].Text = sumnum;
}
}
}
}
protected void Button1_Click(object sender, EventArgs e)
{
decimal dsum =0;
for (int i = 0; i < GridView1.HeaderRow.Cells.Count; i++)
{
if (GridView1.HeaderRow.Cells[i].Text.IndexOf("(N)")>-1)
{
for (int j = 0; j < GridView1.Rows.Count; j++)
{
dsum += Convert.ToDecimal(GridView1.Rows[j].Cells[i].Text.Trim());
}
GridView1.FooterRow.Cells[i].Text = dsum.ToString();
}
//if (GridView1.Rows[i].RowType == DataControlRowType.DataRow)
//{
// string name = GridView1.Rows[i].Cells[0].Text;//获取第i行第1列的内容
// TextBox txtID = (TextBox)GridView1.Rows[i].Cells[1].FindControl("textBox");
// string ID = txtID.Text; //获取TextBox里的内容
//}
}
}
//创建DataTable
protected DataTable CreateDT()
{
DataTable tblDatas = new DataTable("Datas");
//序号列
//tblDatas.Columns.Add("ID", Type.GetType("System.Int32"));
//tblDatas.Columns[0].AutoIncrement = true;
//tblDatas.Columns[0].AutoIncrementSeed = 1;
//tblDatas.Columns[0].AutoIncrementStep = 1;
//数据列
tblDatas.Columns.Add("身份证号码", Type.GetType("System.String"));
tblDatas.Columns.Add("姓名", Type.GetType("System.String"));
tblDatas.Columns.Add("出生日期", Type.GetType("System.String"));
tblDatas.Columns.Add("性别", Type.GetType("System.String"));
tblDatas.Columns.Add("基本工资", Type.GetType("System.Decimal"));
tblDatas.Columns.Add("奖金", Type.GetType("System.Decimal"));
//统计列开始
tblDatas.Columns.Add("应发合计", Type.GetType("System.String"), "基本工资+奖金");
//统计列结束
tblDatas.Columns.Add("家庭住址", Type.GetType("System.String"));
tblDatas.Columns.Add("邮政编码", Type.GetType("System.String"));
tblDatas.Rows.Add(new object[] { null, "张三", "1982", "0", 3000, 1000, null, "深圳市", "518000" });
tblDatas.Rows.Add(new object[] { null, "李四", "1983", "1", 3500, 1200, null, "深圳市", "518000" });
tblDatas.Rows.Add(new object[] { null, "王五", "1984", "1", 4000, 1300, null, "深圳市", "518000" });
tblDatas.Rows.Add(new object[] { null, "赵六", "1985", "0", 5000, 1400, null, "深圳市", "518000" });
tblDatas.Rows.Add(new object[] { null, "牛七", "1986", "1", 6000, 1500, null, "深圳市", "518000" });
return tblDatas;
}
//转换DataTable中的数据 用于逻辑处理相应的数据 显示
protected DataTable FormatDT()
{
DataTable dt1 = CreateDT();
//容错处理 用于不确定 自动产生的列
if (dt1.Columns.Contains("性别"))
{
foreach (DataRow dr in dt1.Rows)
{
dr["性别"] = (dr["性别"].ToString() == "0") ? "女" : "男";
}
}
return dt1;
}
/// <summary>
/// 将DT转换为Execl的方法
/// </summary>
/// <param name="dt">需要导出的DT
/// <param name="page">页面
/// <param name="fileName">文件名
public void ToExecl(DataTable dt, Page page, string fileName)
{
HttpResponse response = page.Response;
response.Clear();
response.ContentType = "application/x-excel";
response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8) + ".xls");
StringBuilder sB = new StringBuilder();
for (int j = 0; j < dt.Columns.Count; j++)
{
sB.Append(dt.Columns[j].Caption + "\t");
}
sB.Append("\n");
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int k = 0; k < dt.Columns.Count; k++)
{
sB.Append("=\"" + dt.Rows[i][k].ToString() + "\"\t"); //解决导出的单元格以科学计数法显示的问题
}
sB.Append("\n");
}
response.Write(sB.ToString());
response.End();
}
public void ToWord(DataTable dt, Page page, string filName)
{
HttpResponse response = page.Response;
response.Clear();
response.ContentType = "application/msword";
response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
response.AddHeader("Content-Disposition","attachment:filename="+System.Web.HttpUtility.UrlEncode(filName,System.Text.Encoding.UTF8)+".doc");
StringBuilder sBuilder = new StringBuilder();
for (int i = 0; i < dt.Rows.Count; i++)
{
sBuilder.Append(dt.Rows[i][1].ToString()+"\n");
}
response.Write(sBuilder.ToString());
response.End();
}
public void ToXML(DataTable dt, Page page, string filename)
{
HttpResponse response = page.Response;
//DataSet ds = new DataSet();
response.Clear();
response.ContentType = "application/x-excel";
response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
response.AddHeader("Content-Disposition", "attachment; filename=" + HttpUtility.UrlEncode(filename,System.Text.Encoding.UTF8) + ".xls");
System.Text.UTF8Encoding utf8 = new System.Text.UTF8Encoding();
System.Xml.XmlTextWriter xw = new XmlTextWriter(response.OutputStream, utf8);
xw.Formatting = Formatting.Indented;
xw.Indentation = 4;
xw.IndentChar = ' ';
dt.TableName = "dd";
dt.WriteXml(xw);
dt = null;
GC.Collect();
xw.Flush();
xw.Close();
response.End();
}
foreach (GridViewRow gvr in GridView1.Rows)
{
foreach (TableCell gvCell in gvr.Cells)
{
//gvCell就是你想要的列了
}
}
GridView1 footer求和的更多相关文章
- Gridview中实现求和统计功能
GridView加入自动求和求平均值小计 效果图: 解决方案: private double sum = 0; //取指定列的数据和,你要根据具体情况对待可能你要处理的是int protected v ...
- Datatable中对某列求和,三种不同情况下的方法
C# code 方法一. object sumObject = DataTable.Compute("sum(Qty)", "TRUE"); 直接对数据表中的字 ...
- Java程序:从命令行接收多个数字,求和并输出结果
一.设计思想:由于命令行接收的是字符串类型,因此应先将字符串类型转化为整型或其他字符型,然后利用for循环求和并输出结果 二.程序流程图: 三.源程序代码: //王荣荣 2016/9/23 ...
- Java之递归求和的两张方法
方法一: package com.smbea.demo; public class Student { private int sum = 0; /** * 递归求和 * @param num */ ...
- EXCEL中对1个单元格中多个数字求和
如A1=3779.3759.3769.3781.3750,A2对A1中4个数字求和怎么求!请高手赐教! 方法一:在B1中输入公式=SUM(MID(A1,{1,6,11,16,21},4)*1) 方法二 ...
- codevs 1082 线段树区间求和
codevs 1082 线段树练习3 链接:http://codevs.cn/problem/1082/ sumv是维护求和的线段树,addv是标记这歌节点所在区间还需要加上的值. 我的线段树写法在运 ...
- 一个将 footer 保持在底部的最好方法
原文: Quick Tip: The Best Way To Make Sticky Footers 当你在布局网页时,有可能会遇到类似下面的这种情况 导致这一问题的原因是页面内容太少,无法将内容区域 ...
- 从sum()求和引发的思考
sum()求和是一个非常简单的函数,以前我的写法是这样,我想大部分和我一样刚开始学习JS的同学写出来的也会是这样. function sum() { var total=null; for(var i ...
- //给定N个整数序列{A1,A2,A3...An},求函数f(i,j)=(k=i~j)Ak的求和
//给定N个整数序列{A1,A2,A3...An},求函数f(i,j)=(k=i~j)Ak的求和 # include<stdio.h> void main() { ,sum1; ]={,- ...
随机推荐
- linux环境配置nginx导致页面不刷新
在linux环境下,配置了nginx负载均衡,由于可能在虚拟主机的配置文件nginx.conf中,对缓存机制未配置成功,导致页面不刷新,仍然显示缓存中的内容. 最后通过注释nginx.conf文件中的 ...
- Delphi里的Windows消息(可查MSDN指定位置)
各种控件的通知消码和控制消息可由MSDN-> Platform SDK-> User Interface Services->Windows User Interface->C ...
- js验证表单大全2
屏蔽右键 很酷 oncontextmenu="return false" ondragstart="return false"onselectstart=&q ...
- 0x01 MySQL What's DataBase
0x01 数据库管理软件的由来 在此之前,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅能存在于某一台机器上. 如果暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件都运行在 ...
- ORACLE中RECORD、VARRAY、TABLE的使用具体解释
1 说明 1.1 RECORD 定义记录数据类型. 它类似于C语言中的结构数据类型(STRUCTURE).PL/SQL提供了将几个相关的.分离的.基本数据类型的变量组成一个总 ...
- Python基础-常用的内置函数
内置函数filter str = ['a', 'b', 'c', 'd'] def fansik(num): if num != "a": return num ret = fil ...
- 在像Angular2这样的SPA应用中使用Google Analytics的方法
Angular2のようなシングルページアプリケーションでGoogleアナリティクスを使う方法 如何在像Angular2这样的SPA应用中使用Google Analytics? 试着调查了一下. 由于S ...
- vue框架(一)
一.介绍 1.Vue是什么? Vue.js (读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关 ...
- Android:日常学习笔记(7)———探究UI开发(4)
Android:日常学习笔记(7)———探究UI开发(4) UI概述 View 和 ViewGrou Android 应用中的所有用户界面元素都是使用 View 和 ViewGroup 对象构建而成 ...
- mysql case的语法
测试表:team 第一种语法: CASE case_value WHEN when_value THEN statement_list [WHEN when_value THEN statement_ ...