zoukankan      html  css  js  c++  java
  • 动态创建DataTable,GridView创建多表头,表头跨行或跨列合并,创建计算列及列内容自适应等

        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                GridView1.DataSource = FormatDT();
                GridView1.DataBind();
            }
        }
        
        protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
        {
            switch (e.Row.RowType)
            {
                //页头
                case DataControlRowType.Header:
                    //第一行表头
                    TableCellCollection tcHeader = e.Row.Cells;
                    tcHeader.Clear();
    
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[0].Attributes.Add("bgcolor", "#8E8E8E");
                    tcHeader[0].Attributes.Add("rowspan", "0"); //跨Row
                    tcHeader[0].Attributes.Add("colspan", "9"); //跨Column
                    tcHeader[0].Text = "全部信息</tr><tr>";
    
                    //第二行表头
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[1].Attributes.Add("bgcolor", "#008A23");
                    tcHeader[1].Text = "身份证号码";
    
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[2].Text = "基本信息";
                    tcHeader[2].Attributes.Add("bgcolor", "#005EBB");
                    tcHeader[2].Attributes.Add("colspan", "3");                
    
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[3].Text = "福利";
                    tcHeader[3].Attributes.Add("bgcolor", "#008A23");
                    tcHeader[3].Attributes.Add("colspan", "2");
    
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[4].Text = "应发合计";
                    tcHeader[4].Attributes.Add("bgcolor", "#008A23");                
    
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[5].Text = "联系方式</tr><tr>";
                    tcHeader[5].Attributes.Add("bgcolor", "#005EBB");
                    tcHeader[5].Attributes.Add("colspan", "2");
                    
    
                    //第三行表头
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[6].Text = "身份证号码";
    
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[7].Text = "姓名";
    
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[8].Text = "出生日期";
    
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[9].Text = "性别";
    
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[10].Text = "基本工资";
    
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[11].Text = "奖金";
    
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[12].Text = "应发合计";
    
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[13].Text = "家庭住址";
    
                    tcHeader.Add(new TableHeaderCell());
                    tcHeader[14].Text = "邮政编码";
                    break;
                //数据行 内容自适应 不换行
                case DataControlRowType.DataRow:
                    TableCellCollection cells1 = e.Row.Cells;
                    for (int i = 0; i < cells1.Count; i++)
                    {
                        cells1[i].Wrap = false; //设置此项切记 不要设置前台GridView宽度
                    }
                    break;
            }
        }
    
        //创建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;
        }

  • 相关阅读:
    用laravel写的项目如何布置在虚拟机上
    在Laravel中注册中间件
    ssh出错
    DB2单表导入导出
    DB2 还原数据库
    ssh-keygen 免交互
    DB2 命令
    21个项目玩转深度学习:基于TensorFlow的实践详解06—人脸检测和识别——数据集
    jieba—parallel
    更新数据
  • 原文地址:https://www.cnblogs.com/smartsmile/p/6234380.html
Copyright © 2011-2022 走看看