码迷,mamicode.com
首页 > 编程语言 > 详细

分享两段行列合并算法

时间:2015-08-08 18:05:27      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:

 

使用一个将指定行列的gridview横向纵向合并行列,实现多复杂表头样式

调用:

GridCommon.Unitelist(this.grid1, 4);

GridCommon.GroupCol(this.grid1, 4, dt.Columns.Count);

        /// <summary>
        /// 横向合并列
        /// </summary>
        public static void Unitelist(GridView gv, int rowIndex)
        {
            if (gv.Rows.Count < 1)
            {
                return;
            }
            TableRow tr;
            for (int i = 0; i < rowIndex; i++)
            {
                tr = gv.Rows[i];
                if (gv.Rows[i].Cells.Count < 1)
                {
                    return;
                }
                TableCell otcell = gv.Rows[i].Cells[0];
                otcell.BackColor = System.Drawing.Color.FromArgb(219, 234, 253); //System.Drawing.Color.Teal;
                otcell.HorizontalAlign = HorizontalAlign.Center;
                for (int j = 1; j < gv.Rows[i].Cells.Count; j++)
                {
                    TableCell tcell = gv.Rows[i].Cells[j];
                    if (tcell.Text == otcell.Text)
                    {
                        tcell.Visible = false;
                        if (otcell.ColumnSpan == 0)
                        {
                            otcell.ColumnSpan = 1;
                        }
                        otcell.ColumnSpan++;
                        otcell.VerticalAlign = VerticalAlign.Middle;
                        otcell.HorizontalAlign = HorizontalAlign.Center;
                        otcell.BackColor = System.Drawing.Color.FromArgb(219, 234, 253); //System.Drawing.Color.Teal;213, 237, 249
                        otcell.Wrap = false;
                    }
                    else
                    {
                        otcell = tcell;
                        otcell.HorizontalAlign = HorizontalAlign.Center;
                        otcell.BackColor = System.Drawing.Color.FromArgb(219, 234, 253);//System.Drawing.Color.Teal;
                    }
                }
            }
        }
        /// <summary>
        /// 纵向合并列
        /// </summary>
        /// <param name="gv">GridView</param>
        /// <param name="colIndex">合并列的序号</param>
        public static void GroupCol(GridView gv, int rowIndex, int CellIndex)
        {
            if (gv.Rows.Count < 1)
            {
                return;
            }
            TableRow tr;
            for (int j = 0; j < CellIndex; j++)
            {
                TableRow oldTr = gv.Rows[0];
                for (int i = 1; i < rowIndex; i++)
                {
                    tr = gv.Rows[i];
                    if (oldTr.Cells[j].Text == tr.Cells[j].Text)
                    {
                        tr.Cells[j].Visible = false;
                        if (oldTr.Cells[j].RowSpan == 0)
                        {
                            oldTr.Cells[j].RowSpan = 1;
                        }
                        oldTr.Cells[j].RowSpan++;
                        oldTr.VerticalAlign = VerticalAlign.Middle;
                    }
                    else
                    {
                        oldTr = tr;
                    }
                }
            }
        }

  

分享两段行列合并算法

标签:

原文地址:http://www.cnblogs.com/SharkLock-Chen/p/4713550.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!