zoukankan      html  css  js  c++  java
  • 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 + "	");
            }
            sB.Append("
    ");
            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() + ""	"); //解决导出的单元格以科学计数法显示的问题
                }
                sB.Append("
    ");
            }
            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()+"
    ");  
           }  
           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就是你想要的列了
                }
            }
    
  • 相关阅读:
    Kafka之消费者与消费者组
    Kafka之生产者
    基于Redis+Lua的分布式限流
    限流方案常用算法讲解
    分布式服务限流
    微服务框架服务调用与容错
    ZooKeeper实现服务注册中心
    微服务注册中心
    让我自己来整理
    Netty框架
  • 原文地址:https://www.cnblogs.com/chenmfly/p/5517861.html
Copyright © 2011-2022 走看看