zoukankan      html  css  js  c++  java
  • 分享两段行列合并算法

    使用一个将指定行列的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;
                        }
                    }
                }
            }
    

      

  • 相关阅读:
    变态的IE
    视频豪横时代,应用如何快速构建视频点播能力?
    阿里云峰会 | 阿里云CDN六大边缘安全能力,全力助推政企数字化转型
    从 2018 年 Nacos 开源说起
    完美日记:实现高弹性高稳定电商架构
    Dubbo 迈出云原生重要一步 应用级服务发现解析
    如何提升微服务的幸福感
    怀里橘猫柴犬,掌上代码江湖——对话阿里云 MVP郭旭东
    云原生时代消息中间件的演进路线
    solr中特殊字符的处理
  • 原文地址:https://www.cnblogs.com/SharkLock-Chen/p/4713550.html
Copyright © 2011-2022 走看看