日期:2014-05-17  浏览次数:21227 次

Asp.net中表头合并 复杂表头实现

有需要需要实现复杂表头,折腾了一天多才做成这个样子 和大家分享一下

代码实现

 protected void Page_Load(object sender, EventArgs e)
    {
        DataTable tblDatas = new DataTable("Datas");
        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.String"));
        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[] {  "单位名称", "地区", "用户名称",10000,0.14,222,230,240 });
        SqlConnection conn =new SqlConnection();
        conn.ConnectionString="";
        try
        {
            conn.Open();
            SqlDataAdapter Sda = new SqlDataAdapter("SELECT g.MSSQY AS 管理单位,g.YHDQ AS 地区,g.yhm AS 用户名称,s.mhtl AS 年度合同量,s.MYL AS 平均出站压力,s.MGQL AS 日实际供气量, s.MYGQL AS 月供气量,s.MNGQL AS 年供气量 FROM dbo.YHGX g INNER JOIN dbo.YHGX_SJ s ON g.MZCMID=s.MZCMID AND g.MXLMID=s.MXLMID AND g.YHMID=s.YHMID AND g.SHYHMID=s.SHYHMID;",conn);
            DataSet ds = new DataSet();
            Sda.Fill(ds,"Data");
            //定义变量用于存储数据
            string GLDW;   //管理单位
            string DQ;     //地区
            string YHMC;   //用户名称
            string NDHTL;  //年度合同量
            string PJCZYL; //平均出站压力
            string RSJGQL; //日实际供气量
            string YGQL;   //月供气量
            string NLJQL;  //年累计气量
            for (int i = 0; i < ds.Tables["Data"].Rows.Count; i++)
            {
                //开始把值赋值给变量然后添加到目标Datatable
                GLDW = ds.Tables["Data"].Rows[i][0].ToString().Trim();
                DQ = ds.Tables["Data"].Rows[i][1].ToString().Trim();
                YHMC = ds.Tables["Data"].Rows[i][2].ToString().Trim();
                NDHTL = ds.Tables["Data"].Rows[i][3].ToString().Trim();
                PJCZYL = ds.Tables["Data"].Rows[i][4].ToString().Trim();
                RSJGQL = ds.Tables["Data"].Rows[i][5].ToString().Trim();
                YGQL = ds.Tables["Data"].Rows[i][6].ToString().Trim();
                NLJQL = ds.Tables["Data"].Rows[i][7].ToString().Trim();
                tblDatas.Rows.Add(new object[] {  GLDW, DQ, YHMC,NDHTL,PJCZYL,RSJGQL,YGQL,NLJQL });
            }


        }
        catch (Exception ex)
        {

            throw ex;
        }
        finally
        {
            conn.Close();
            conn.Dispose();
 
        }
     
       

        

        this.GridView1.DataSource = tblDatas;
        this.GridView1.DataBind();
    }

    protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
    {
        switch (e.Row.RowType)
        {
            case DataControlRowType.Header:
                string StrDate = DateTime.Now.ToString("yyyy.MM.dd");
                //第一行表头
                TableCellCollection tcHeader = e.Row.Cells;
                tcHeader.Clear();
                //第二行表头
                tcHeader.Add(new TableHeaderCell());
                tcHeader[0].Attributes.Add("colspan", "1");
                tcHeader[0].Attributes.Add("width", "60");
                tcHeader[0].Text = "数据日期";
                tcHeader.Add(new TableHeaderCell());
                tcHeader[1].Attributes.Add("colspan", "4"