在DataGrid中合并单元格行

最近在做项目的时候经常遇到要合并单元格的情况,发现这个东西.net中并没有现成的方法,研究了一下,总结了两种方法。
这个主要都是行合并的,有以下两种情况
1、多行合并为一行,其中将某个或某几个单元格的内容合并起来
     原始样式:
            column1     column2
                1                    a
                1                    b
                1                    c
                1                    d
                2                    q
                2                    w
                2                    e
      需要效果:
            column1        column2
                1                    a\b\c\d
                2                    q\w\e
      代        码: 
                 

None.gif
None.gif     
private void DataGrid_CaseTeamList_Bind() 
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif
InBlock.gif            取得数据部分代码省略 
InBlock.gif            dsSpeTeam 
= o.GetData(strSQL).Tables[0].DefaultView; 
InBlock.gif            DataSet dsSpeL 
= o.GetData(strSQLSpe); 
InBlock.gif            DataGrid_CaseTeamList.ItemCreated 
+=new DataGridItemEventHandler(DataGrid_CaseTeamList_ItemCreated); 
InBlock.gif            DataGrid_CaseTeamList.DataSource 
= dsSpeL.Tables[0].DefaultView; 
InBlock.gif            DataGrid_CaseTeamList.DataBind(); 
ExpandedBlockEnd.gif        }
 
None.gif 
None.gif        
private void DataGrid_CaseTeamList_ItemCreated(object sender, DataGridItemEventArgs e) 
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif
InBlock.gif            DataGridItem item 
= e.Item; 
InBlock.gif            
if (item.ItemType == ListItemType.Item || item.ItemType == ListItemType.AlternatingItem) 
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif
InBlock.gif                DataRowView row 
= (DataRowView)e.Item.DataItem; 
InBlock.gif                
//set the filter condition 
InBlock.gif
                string sSpecialist = row["column1"].ToString(); 
InBlock.gif                dsSpeTeam.RowFilter 
= string.Format(" column1 = '{0}'", sSpecialist.Replace("'""''")); 
InBlock.gif                 
InBlock.gif                 
//----------------------------------------------------------
InBlock.gif                
// 若要将checkbox 合并放入,可使用下面代码 代替以下部分
InBlock.gif                 
//    CheckBoxList boxList = new CheckBoxList();
InBlock.gif                
//    boxList.RepeatColumns  = 2;
InBlock.gif                
//    boxList.RepeatDirection = RepeatDirection.Horizontal;
InBlock.gif                
//    boxList.DataSource = dsSpeTeam;
InBlock.gif                
//    boxList.DataTextField = "Team";
InBlock.gif                
//    boxList.DataValueField = "Team";
InBlock.gif                
//    PlaceHolder holder = (PlaceHolder) e.Item.FindControl("TeamArray");
InBlock.gif                
//    holder.Controls.Add(boxList);
InBlock.gif                
//----------------------------------------------------------
InBlock.gif
                 DataRowView row1 = null
InBlock.gif                IEnumerator Enum 
= dsSpeTeam.GetEnumerator(); 
InBlock.gif                
string strTeam= ""
InBlock.gif                
while (Enum.MoveNext()) 
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif
InBlock.gif                    row1 
= (DataRowView) Enum.Current; 
InBlock.gif                    strTeam 
= strTeam + row1["column2"+ "/"
ExpandedSubBlockEnd.gif                }
 
InBlock.gif                Label lbl 
= new Label(); 
InBlock.gif                
if (strTeam.Length > 0
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif
InBlock.gif                    lbl.Text 
= strTeam.Substring(0,strTeam.Length-1); 
ExpandedSubBlockEnd.gif                }
 
InBlock.gif                
else 
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif
InBlock.gif                    lbl.Text 
= " "
ExpandedSubBlockEnd.gif                }
 
InBlock.gif                lbl.Style.Add(
"padding-left","5px"); 
InBlock.gif                
//在datagrid中,合并目标列放一个PlaceHolder控件 
InBlock.gif                
//------------------------------------------------------------
InBlock.gif
                PlaceHolder holder = (PlaceHolder) e.Item.FindControl("column2Value"); 
InBlock.gif                holder.Controls.Add(lbl); 
ExpandedSubBlockEnd.gif            }
 
ExpandedBlockEnd.gif        }
 


2、将Datagrid中的某些相同的单元格合并
        原始样式:    
                Column1            Column2
                    1                                a
                    1                                b
                    1                                c
                     2                                x
                     2                                y
                      2                               z
        需要效果:
                Column1            Column2
                                                     a
                       1                            b
                                                     c
_____________________________
                                                      x
                        2                            y
                                                       z

        代        码:
                

ExpandedBlockStart.gifContractedBlock.gif        /**//// <summary>
InBlock.gif        
/// used to merge cells
InBlock.gif        
/// </summary>
InBlock.gif        
/// <param name="dg">datagrid will be merged</param>
InBlock.gif        
/// <param name="GroupColumn">merged column</param>
ExpandedBlockEnd.gif        
/// <param name="compareColumn">basis column</param>

None.gif        private void spanRow(DataGrid dg,int GroupColumn,int compareColumn)
ExpandedBlockStart.gifContractedBlock.gif        
dot.gif{
InBlock.gif            
int i = 0;
InBlock.gif            
int j = 0;
InBlock.gif            
int rowSpan;
InBlock.gif            
string strTemp = "";
InBlock.gif 
InBlock.gif            
for(i=0;i<dg.Items.Count;i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
dot.gif{
InBlock.gif                rowSpan 
= 1;
InBlock.gif                strTemp 
= dg.Items[i].Cells[compareColumn].Text;
InBlock.gif                
for (j=i+1;j<dg.Items.Count;j++)
ExpandedSubBlockStart.gifContractedSubBlock.gif                
dot.gif{
InBlock.gif                    
if (string.Compare(strTemp,dg.Items[j].Cells[compareColumn].Text) == 0)
ExpandedSubBlockStart.gifContractedSubBlock.gif                    
dot.gif{
InBlock.gif                        rowSpan 
+= 1;
InBlock.gif                        dg.Items[i].Cells[GroupColumn].RowSpan 
= rowSpan;
InBlock.gif                        dg.Items[j].Cells[GroupColumn].Visible 
= false;
ExpandedSubBlockEnd.gif                    }

InBlock.gif                    
else
ExpandedSubBlockStart.gifContractedSubBlock.gif                    
dot.gif{
InBlock.gif                        
break;
ExpandedSubBlockEnd.gif                    }

ExpandedSubBlockEnd.gif                }

InBlock.gif                i 
= j -1;
ExpandedSubBlockEnd.gif            }

ExpandedBlockEnd.gif        }


        以上两种方法可合并使用

转载于:https://www.cnblogs.com/dsliang/archive/2010/07/01/1769201.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/299224.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

这些口碑炸裂的BBC神片,就是给孩子最好的生命教育

全世界只有3.14 % 的人关注了爆炸吧知识对孩子来说&#xff0c;好的纪录片就像是打开了一扇新世界的大门&#xff0c;让他们了解了更多大自然的奇妙之处。所以这次我们精心挑选了几部适合儿童观看的纪录片&#xff0c;其中绝大多数是导演专门为孩子拍摄的&#xff0c;大家可以在…

《划时代-51单片机C语言全新教程》-第四章 工程创建与深入 概览

&#xff08;请复制整个下载地址到迅雷、快车、QQ旋风进行下载&#xff09; 电子书下载地址&#xff1a;http://files.cnblogs.com/wenziqi/划时代&#xff0d;51单片机C语言全新教程.rar转载于:https://www.cnblogs.com/wenziqi/archive/2010/07/05/1771281.html

java模拟火车站买票的过程_Java常用代理

在我们通常的应用中&#xff0c;代理模式也是我们常用的设计模式之一。所谓的代理模式是指客户端并不直接调用实际的对象&#xff0c;而是通过调用代理对象&#xff0c;来间接的调用实际的对象。为什么要采用这种间接的形式来调用对象呢&#xff1f;一般是因为客户端不想访问实…

网络繁杂,我们该如何准确获取所需信息?

全世界只有3.14 % 的人关注了爆炸吧知识网络已经成为了很多人发表言论的地方不少网站亦难免存在宣泄情绪的内容网络繁杂&#xff0c;该如何获取准确信息&#xff1f;下面为你推荐一些客观公号希望能让你扩展视野&#xff0c;增长见识&#xff01;【关注方式 】1 - 搜索公众号ID…

被评为“影响世界千年的物理学家”,杨振宁的伟大,你根本不了解

全世界只有3.14 % 的人关注了爆炸吧知识2018年3月14日&#xff0c;英国科学家霍金去世&#xff0c;作为当代英国最杰出的科学家之一&#xff0c;英国用最规格的方式送别了这位伟大的科学家。霍金去世了&#xff0c;中国媒体沸腾了&#xff01;有人说&#xff1a;这是全人类的损…

Blazor+Dapr+K8s微服务之服务调用

1.1 Dapr环境配置1.1.1 在开发机安装Docker Desktop并启用Kubernetes安装过程略&#xff0c;安装好后效果如下&#xff1a;&#xff08;左下角两个绿色指示Docker和K8s正在运行&#xff09;1.1.2 在开发机安装Dapr Cli安装命令&#xff1a;powershell -Command …

mysql 卸载插件_MySQL 插件安装或卸载(window validate_password 为例)

查看插件&#xff1a;mysql> show plugins;mysql> select plugin_name,plugin_status,plugin_type,load_option,plugin_library from information_schema.plugins;默认插件目录&#xff1a;mysql> show variables like plugin_dir;----------------------------------…

11部高分学科纪录片,助力孩子涨姿势拓视野~

全世界只有3.14 % 的人关注了爆炸吧知识▌导读本文为同学们整理了11部高分经典学科纪录片&#xff0c;对应文学、数学、经济学、地理、化学、生物、物理、历史、社会学、美学、天文学11个学科。这不仅是课堂学习的补充与延伸&#xff0c;更是开拓视野、激发学习内驱力的绝佳利器…

Istio 首次安全评估结果公布

本文译自 Istio 社区官方博客 Announcing the results of Istio’s first security assessment[1]&#xff0c;作者 Neeraj Poddar&#xff0c;译者宋净超。Istio 服务网格已在各行各业获得广泛的生产应用。该项目的成功&#xff0c;以及其在基础设施中执行关键安全策略的重要用…

node 16位 转24位_同时将24位和32位BMP图像顺时针旋转90度

上一次我们将24位的皮卡丘旋转了90度&#xff0c;但是后来改需求了。。。要求把32位的.bmp文件也能够旋转90度。上次就懵逼的我继续懵逼&#xff0c;只好继续转向CSDN求助。浏览了各种求助帖&#xff08;还找到了数年前的信科大一学长&#xff09;&#xff0c;终于发现了32位和…

这几个关乎我们一生教养的原则,每个人都应该知道。

▲ 点击查看最近刷到这样两条微博&#xff0c;让人心头一暖。一条是杭州一个小男孩给医院捐款千元&#xff0c;还附上了一封感谢信。临走时还给医生敬了个少先队礼。另一条是扬州一名女孩把自己的小黄鸭储蓄罐整个捐到派出所&#xff0c;留下一张写着“武汉加油”的纸条&#x…

怎么提交 checkbox 表单_8. html form表单

“仅供学习&#xff0c;转载请注明出处”form表单表单用于搜集不同类型的用户输入&#xff0c;表单由不同类型的标签组成&#xff0c;相关标签及属性用法如下&#xff1a;1、标签 定义整体的表单区域action属性 定义表单数据提交地址method属性 定义表单提交的方式&#xff0c;…

越来越多的人不刷朋友圈竟然是因为.....

全世界只有3.14 % 的人关注了爆炸吧知识有些人&#xff0c;生活离不开朋友圈朋友圈是他们展示自我、观察世界的一扇窗户而有些人&#xff0c;从来也不点开朋友圈他们更愿意利用地铁上的零散化时间看点有意义、有知识的公众号推送完成对自我知识库的更新今天为大家推荐以下优质订…

Java基础---变量(三)

简单的说&#xff0c;我们可以把变量看作是个盒子&#xff0c;可以将钥匙、手机、饮料等物品存放在这个盒子中&#xff0c;也可以在需要的时候换成我们想存放的新物品。在 Java 中&#xff0c;我们通过三个元素描述变量&#xff1a;变量类型、变量名以及变量值。如果我们把变量…

腾讯,1000 亿!

聊聊腾讯的开源技术大家好&#xff0c;我是鱼皮&#xff0c;最近一则新闻在公司内外闹得沸沸扬扬&#xff0c;就是下面这个&#xff1a;为了履行企业发展使命&#xff0c;促进高质量发展的共同繁荣&#xff0c;腾讯在投资 500 亿元启动 “可持续社会价值创新” 战略后&#xff…

php mysql 执行sql文件_PHP执行SQL文件并将SQL文件导入到数据库_PHP

//读取文件内容$_sql file_get_contents(test.sql);$_arr explode(;, $_sql);$_mysqli new mysqli(DB_HOST,DB_USER,DB_PASS);if (mysqli_connect_errno()) {exit(连接数据库出错);}//执行sql语句foreach ($_arr as $_value) {$_mysqli->query($_value.;);}$_mysqli->…

What?你还搞不懂什么是物体检测?

全世界只有3.14 % 的人关注了爆炸吧知识计算机视觉在上一个世纪60年代脱胎于人工智能与认知神经科学&#xff0c;并旨在通过设计算法来让计算机自动理解图像的内容。于是为了“解决”这类机器视觉的问题&#xff0c;麻省理工在1966年正式将这个问题作为一个夏季项目&#xff0c…

IIS服务器上增加mp4格式MIME 类型映射设置具体步骤

2019独角兽企业重金招聘Python工程师标准>>> 也许你会在纳闷&#xff0c;为什么我上传了flv或MP4文件到服务器&#xff0c;可输入正确地址通过http协议来访问总是出现“无法找到该页”的404错误呢&#xff1f;这就 表明mp4格式文件是服务器无法识别的&#xff0c;其…

WPAD原理介绍暨故障排查:ISA2006系列之三

WPAD的部署原理暨故障排查<?XML:NAMESPACE PREFIX O />WPAD是Web Proxy Auto Discovery的缩写&#xff0c;意思是Web代理服务器自动发现。WPAD的设计目的是让浏览器能自动发现代理服务器&#xff0c;这样用户可以轻松访问互联网而且无需知道哪台计算机是代理服务器。在…

Web服务器HttpServer(嵌入式设备)

HttpServer是一个轻量级Web服务器&#xff0c;用于在嵌入式设备以及客户端环境中提供简单Web服务。HttpServer支持路由映射到匿名委托、WebApi接口、静态文件&#xff0c;以及具有多个接口的控制器类。从简单到复杂&#xff0c;控制权交给开发者。源码&#xff1a;https://gith…