GridView多行合并与多列合并

该文章属于转载;

 

GridView多行合并与多列合并

 

偶今天看到Winform的DataGridView的表头样式,非常好看,于是就想在ASP.NET中仿照一个,走了不少弯路,终于功夫不负有心人,终出来了.不知对大家是否有帮助,只是对那些需要的人,少走点弯路吧。

 

protected void Page_Load(object sender, EventArgs e)
{
       if (!IsPostBack)
   {
            GridView1.BorderColor = System.Drawing.Color.DarkOrange;
            GridView1.DataSource = CreateDataSource();
            GridView1.DataBind();         
        }
    }
    ICollection CreateDataSource()
{
        DataTable dt = new DataTable();
        DataRow dr;
        dt.Columns.Add(new DataColumn("学生姓名", typeof(string))); 
        dt.Columns.Add(new DataColumn("语文", typeof(decimal)));
        dt.Columns.Add(new DataColumn("数学",typeof(decimal)));
        dt.Columns.Add(new DataColumn("英语",typeof(decimal)));
        for (int i = 0; i < 8; i++)
    {
            Random rd = new Random(Environment.TickCount * i);
            dr = dt.NewRow();
            dr[0] = "学生" + i.ToString();
            dr[1] = Math.Round(rd.NextDouble() * 100, 2);
            dr[2] = Math.Round(rd.NextDouble() * 100, 2);
            dr[3] = Math.Round(rd.NextDouble() * 100, 2);
            dt.Rows.Add(dr);
        }
        DataView dv = new DataView(dt);
        return dv;
    }
    //前面的比较简单,我就不说了.
    protected void GridView1_RowCreated(object sender, GridViewRowEventArgs e)
{
        if (e.Row.RowType == DataControlRowType.Header)   //判断创建的行是不是标题行
   {
            GridViewRow rowHeader = new GridViewRow(0, 0, DataControlRowType.Header, DataControlRowState.Normal);
            rowHeader.BackColor = System.Drawing.Color.White;
            rowHeader.Font.Bold = true;//设置标题行的背景颜色,以及字体样式
            TableCellCollection cells = e.Row.Cells;
            cells.Clear();  //获得标题行,清空标题行的设置
            cells.Add(new TableHeaderCell());  //添加一个标题单元
            cells[0].RowSpan = 2;   //设置跨行.         下面这句是关键,直接导入html中的table中的元素,这也是让我死脑细胞的地方,呵,呵
            cells[0].Text = "学生姓名</th><th colspan=3>学生成绩</th></tr><tr bgcolor=white><th>语文</th><th>数学</th><th>英语";
        }
    }
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
        e.Row.Attributes.Add("style","background:#FFF");
    }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值