zoukankan      html  css  js  c++  java
  • GridView合并某一列相同的单元格(MS)

     一次只合并一列

            #region  合并gridview中某一列相同的单元格
            public static void CellTogether(int cellIndex, GridView gvTemp)
            {
                int i = 0;
                int rowSpanNum = 1;

                while (i < gvTemp.Rows.Count - 1)
                {
                    GridViewRow gvr = gvTemp.Rows[i];
                    for (++i; i < gvTemp.Rows.Count; i++)
                    {
                        GridViewRow gvrNext = gvTemp.Rows[i];
                        if (gvr.Cells[cellIndex].Text == gvrNext.Cells[cellIndex].Text)
                        {
                            // 前1つ列の内容が一致かどうか
                            if ((cellIndex >= 1) &&
                                (gvr.Cells[cellIndex - 1].Text != gvrNext.Cells[cellIndex - 1].Text))
                            {
                                gvr.Cells[cellIndex].RowSpan = rowSpanNum;
                                rowSpanNum = 1;
                                break;
                            }
                            else
                            {
                                gvrNext.Cells[cellIndex].Visible = false;
                                rowSpanNum++;
                            }
                        }
                        else
                        {
                            gvr.Cells[cellIndex].RowSpan = rowSpanNum;
                            rowSpanNum = 1;
                            break;
                        }
                        if (i == gvTemp.Rows.Count - 1)
                        {
                            gvr.Cells[cellIndex].RowSpan = rowSpanNum;
                        }
                    }
                }
            }

            #endregion

    使用方法

    在GRIDVIEW绑定后调用

    CellTogetherArry(列数字, GridView1);

     

    一次可以合并多列(数组)

            public static void CellTogetherArry(int[] cellIndex, GridView gvTemp)
            {
                for (int x = 0; x < cellIndex.Length; x++)
                {
                    int i = 0;
                    int rowSpanNum = 1;
                    while (i < gvTemp.Rows.Count - 1)
                    {
                        GridViewRow gvr = gvTemp.Rows[i];
                        for (++i; i < gvTemp.Rows.Count; i++)
                        {
                            GridViewRow gvrNext = gvTemp.Rows[i];
                            if (gvr.Cells[cellIndex[x]].Text == gvrNext.Cells[cellIndex[x]].Text)
                            {
                                // 前1つ列の内容が一致かどうか
                                if ((cellIndex[x] >= 1) &&
                                    (gvr.Cells[cellIndex[x] - 1].Text != gvrNext.Cells[cellIndex[x] - 1].Text))
                                {
                                    gvr.Cells[cellIndex[x]].RowSpan = rowSpanNum;
                                    rowSpanNum = 1;
                                    break;
                                }
                                else
                                {
                                    gvrNext.Cells[cellIndex[x]].Visible = false;
                                    rowSpanNum++;
                                }
                            }
                            else
                            {
                                gvr.Cells[cellIndex[x]].RowSpan = rowSpanNum;
                                rowSpanNum = 1;
                                break;
                            }
                            if (i == gvTemp.Rows.Count - 1)
                            {
                                gvr.Cells[cellIndex[x]].RowSpan = rowSpanNum;
                            }
                        }
                    }
                }
            }

     

    使用方法

    int[] arr=new int[]{1,2};

    在GRIDVIEW绑定后调用

    CellTogetherArry(arr, GridView1);

  • 相关阅读:
    【算法设计与分析基础】8、背包问题
    【算法设计与分析基础】8、穷举 旅行商问题
    【算法设计与分析基础】7、蛮力求平面中距离最近的两点
    【算法设计与分析基础】6、蛮力字符匹配
    【算法设计与分析基础】5、冒泡排序与选择排序
    【算法设计与分析基础】4、伪随机数
    【算法设计与分析基础】3、斐波拉契数列
    【算法设计与分析基础】2、矩阵相乘
    【算法设计与分析基础】1、埃拉托色尼筛选法
    【JAVA并发编程实战】12、使用condition实现多线程下的有界缓存先进先出队列
  • 原文地址:https://www.cnblogs.com/Hdsome/p/1261959.html
Copyright © 2011-2022 走看看