Gridview行列的简单合并

发布日期:2010-09-03 作者:mi52.com 人气:

1.行合并:

using System.Net; 

protected void Page_Load(object sender, EventArgs e)
    {
        GridView1.DataSource = getDataTable();
        GridView1.DataBind();
    }

    private DataTable getDataTable()
    {
        DataTable dt = new DataTable();
        dt.Columns.Add(new DataColumn("name", typeof(string)));
        dt.Columns.Add(new DataColumn("num", typeof(string)));
        DataRow dr;
        for (int i = 0; i <= 10; i++)
        {
            dr = dt.NewRow();
            if (i < 5)
                dr[0] = "我";
            else
                dr[0] = "你";
            dr[1] = i.ToString();
            dt.Rows.Add(dr);
        }
        return dt;       
    }

    int row = 0;
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        int rowindex = e.Row.RowIndex;
        if (rowindex - 1 < 0) return;
        if (e.Row.Cells[0].Text == GridView1.Rows[rowindex - 1].Cells[0].Text)
        {
            if (GridView1.Rows[row].Cells[0].RowSpan == 0) GridView1.Rows[row].Cells[0].RowSpan++;
            GridView1.Rows[row].Cells[0].RowSpan++;
            e.Row.Cells[0].Visible = false;
        }
        else
        {
            row = rowindex;
        }
    }

2.列合并:

ICollection CreateDataSource()
    {
        System.Data.DataTable dt = new System.Data.DataTable();
        System.Data.DataRow dr;
        dt.Columns.Add(new System.Data.DataColumn("学生姓名", typeof(System.String)));
        dt.Columns.Add(new System.Data.DataColumn("语文", typeof(System.Decimal)));
        dt.Columns.Add(new System.Data.DataColumn("数学", typeof(System.Decimal)));
        dt.Columns.Add(new System.Data.DataColumn("英语", typeof(System.Decimal)));
        for (int i = 0; i < 8; i++)
        {
            System.Random rd = new System.Random(Environment.TickCount * i); ;
            dr = dt.NewRow();
            dr[0] = "学生" + i.ToString();
            dr[1] = System.Math.Round(rd.NextDouble() * 100, 2);
            dr[2] = System.Math.Round(rd.NextDouble() * 100, 2);
            dr[3] = System.Math.Round(rd.NextDouble() * 100, 2);
            dt.Rows.Add(dr);
        }
        System.Data.DataView dv = new System.Data.DataView(dt);
        return dv;
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            GridView1.BorderColor = System.Drawing.Color.DarkOrange;
            GridView1.DataSource = CreateDataSource();
            GridView1.DataBind();
        }
    }

    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;
            TableCell headerCell = new TableCell();
            headerCell.Text = "";
            rowHeader.Cells.Add(headerCell);

            headerCell = new TableCell();
            headerCell.Text = "学生成绩";
            headerCell.ColumnSpan = cells.Count - 1;
            headerCell.HorizontalAlign = HorizontalAlign.Center;

            rowHeader.Cells.Add(headerCell);
            rowHeader.Visible = true;
            GridView1.Controls[0].Controls.AddAt(0, rowHeader);
        }
    }

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {
        e.Row.Attributes.Add("style", "background:#FFF");
    }

返回顶部

拨打电话
首页