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);

  • 相关阅读:
    Hbase 统计行数的四种方式
    Solr、MongoDB和Hadoop比较
    三种方法更改MAC OS X下的HOSTS文件
    史上最全前端面试题(含答案)
    图文-水平垂直居中兼容ie6+
    CSS3动画
    jQuery延迟加载(懒加载)插件 – jquery.lazyload.js-Web前端(W3Cways.com)
    web app变革之rem
    MAC中通过gem命令安装compass
    mac下升级ruby环境版本
  • 原文地址:https://www.cnblogs.com/Hdsome/p/1261959.html
Copyright © 2011-2022 走看看