| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付学习型 ASP/PHP/ASP.NET 主机 30元/年
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY 
共有 409 人关注过本帖
标题:经常看到很多人问datagrid的合并单元格的问题,我找到好的,拿出来分享
收藏  订阅  推荐  打印 
ASP汽车
Rank: 3Rank: 3
等级:中级会员
帖子:197
积分:2132
注册:2007-7-4
经常看到很多人问datagrid的合并单元格的问题,我找到好的,拿出来分享

private   void   span(   int   icolumn   )   
        {   
            //功能说明:用于完成合并单元格   
            //参数说明:想合并列的序号   
            //返回说明:没有返回值   
            //受影响项:页面的datagrid被修改   
   
            string[]   sMonth=new   string[icolumn+1];//存放存放待合并单元格所在行前几个单元格的内容   
            int   j=1;//存放合并单元格的rowspan值   
            int   t=0;//存放待合并单元格的首个单元格行值   
            bool   tf;//存放判断结果   
            for(int   i2=0;i2<=icolumn;i2++)   
            {   
                //初始化数组   
                sMonth[i2]=DataGrid1.Items[0].Cells[i2].Text;//---就是你自己datagrid的名字
            }   
   
            //记录级循环   
            for(int   i=1;i<DataGrid1.Items.Count;i++)   
            {   
                //判断当前单元格的内容是否与待合并的单元格一样   
                tf=true;   
                for(int   i2=0;i2<=icolumn;i2++)   
                {   
                    if(!DataGrid1.Items[i].Cells[i2].Text.Equals(sMonth[i2]))
                    {   
                        tf=false;   
                    }   
                }   
                if(tf)   
                {   
                    //内容一样   
                    //除去当前单元格的内容   
                    DataGrid1.Items[i].Cells.RemoveAt(icolumn);   
                    j++;//下一行的单元格   
                    //判断是否到了最后一行   
                    if(i==DataGrid1.Items.Count-1&&j>1)   
                        DataGrid1.Items[t].Cells[icolumn].RowSpan=j;   
                }   
                else   
                {   
                    //内容不一样   
                    //判断是否需要合并单元格   
                    if(j>1)   
                    {   
                        //需要合并   
                        DataGrid1.Items[t].Cells[icolumn].RowSpan=j;   
                        j=1;   
                    }   
                    //本格的合并结束,重新赋值,继续下一个单元格的处理   
                    t=i;   
                    for(int   i2=0;i2<=icolumn;i2++)   
                    {   
                        //初始化数组   
                        sMonth[i2]=DataGrid1.Items[i].Cells[i2].Text;   
                    }   
                }   
            }
        }
搜索更多相关主题的帖子: 单元格  datagrid  int  icolumn  bool  
2008-1-4 09:59
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.046848 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved