首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

GridView归并单元格

2013-04-21 
GridView合并单元格实现这种效果用 /// summary/// 合并GridView中某列相同信息的行(单元格)/// /summa

GridView合并单元格
实现这种效果GridView归并单元格
用 /// <summary> 
        /// 合并GridView中某列相同信息的行(单元格) 
        /// </summary> 
        /// <param name="GridView1">GridView</param> 
        /// <param name="cellNum">第几列</param> 
        public static void GroupRows(GridView GridView1, int cellNum)
        {
            int i = 0, rowSpanNum = 1;
            while (i < GridView1.Rows.Count - 1)
            {
                GridViewRow gvr = GridView1.Rows[i];
             
                for (++i; i < GridView1.Rows.Count; i++)
                { 
                    GridViewRow gvrNext = GridView1.Rows[i];
                    if (gvr.Cells[cellNum].Text == gvrNext.Cells[cellNum].Text)
                    {
                        //gvrNext.Cells[cellNum].Visible = false;
                        gvrNext.Cells[cellNum].Visible = false;
                        rowSpanNum++;
                    }
                    else
                    {
                        gvr.Cells[cellNum].RowSpan = rowSpanNum;
                        rowSpanNum = 1;
                        break;
                    }

              
                    if (i == GridView1.Rows.Count - 1)
                    {


                        gvr.Cells[cellNum].RowSpan = rowSpanNum;
                    }
                }
            }
        }合并后,不好隔行变色
[解决办法]
你这个是第一行就有三条记录,然后那个orderid是相同的,就合并,对吗,有些记录是两条,一条,你这个是怎么合并的
[解决办法]


        /// <summary> 
        /// 合并GridView中某列相同信息的行(单元格) 
        /// </summary> 
        /// <param name="GridView1">GridView</param> 
        /// <param name="cellNum">第几列</param> 
        public static void GroupRows(GridView gv, int cellNum)
        {
            int i = 0, rowSpanNum = 1;
            int j = 0;
            string[] _color = { "#eeeeee", "#ffffff" };
            while (i < gv.Rows.Count - 1)
            {
                GridViewRow gvr = gv.Rows[i];
                gvr.Attributes["bgcolor"] = _color[j % 2];
                for (++i; i < gv.Rows.Count; i++)
                {
                    GridViewRow gvrNext = gv.Rows[i];
                    
                    if (gvr.Cells[cellNum].Text == gvrNext.Cells[cellNum].Text)
                    {
                        gvrNext.Attributes["bgcolor"] = _color[j % 2];
                        //gvrNext.Cells[cellNum].Visible = false;
                        gvrNext.Cells[cellNum].Visible = false;
                        rowSpanNum++;


                    }
                    else
                    {
                        gvr.Cells[cellNum].RowSpan = rowSpanNum;
                        rowSpanNum = 1;
                        j++;
                        break;
                    }


                    if (i == gv.Rows.Count - 1)
                    {
                        gvr.Cells[cellNum].RowSpan = rowSpanNum;
                    }
                }
            }
        }

热点排行