动态合并GridView数据行DataRow的列_.NET_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > .NET > 动态合并GridView数据行DataRow的列

动态合并GridView数据行DataRow的列

 2013/8/5 17:08:34  Insus.NET  博客园  我要评论(0)
  • 摘要:前段时间,Insus.NET一直在演示GridView控件Header头行或列:《动态变更GridView控件列名》和《动态合并或定制GridView控件Header头某些列》,现今想演示合并Gridview的DataRow中的列。其实合并列也不是什么复杂的问题,只想明白其中的原理,就觉得简单至极。数据库方面的准备,在此例中略过。在站点创建一个网页,拉GridView控件到.aspx网页中,并用自定义模版显示数据。如下:去.aspx.cs的codebehind写数据绑定代码:网页在浏览时
  • 标签:view 数据

前段时间,Insus.NET一直在演示GridView控件Header头行或列:《动态变更GridView控件列名》和《动态合并或定制GridView控件Header头某些列》,现今想演示合并Gridview的DataRow中的列。

其实合并列也不是什么复杂的问题,只想明白其中的原理,就觉得简单至极。
数据库方面的准备,在此例中略过。
在站点创建一个网页,拉GridView控件到.aspx网页中,并用自定义模版显示数据。如下:


去.aspx.cs的code behind写数据绑定代码:



网页在浏览时,会看到下面的效果:



看到否,上图中第二列,有很KindName的相同的,为了界面简洁与清晰,Insus.NET决定合并它们。为了实现数据行中的列合并,我们需要为GridView控件写一个事件 OnRowCreated="GridViewFruit_RowCreated":




现在,我们可以去code behind写程序了,在写OnRowCreated事件程序之前,先需要定义一个页面级的变量:



上图中的变量,rowCount将记录所有记录总数,初始值为0。rowindex是将用来记录行索引,初始值为0, 而mergeCellText变量是合并的字段名。

OK,下面我们开始写OnRowCreated事件逻辑程序:



上图中:
#35行代码,如果不是数据行,将跳过下面的程序。
#37行,把e.Row.DataItem转为DataRowView。
#39-#43行代码,如果是DataRow第一行,将行索引和将要合并的列值记录下来。
#45 -#62行代码,均是处理非第一数据行。
#47行代码,如果当前行需要合并的数据列值与前一行不相同的,我们就可以合并前面的数据列了。还要把当前的行索引与列值记录下来。
#55行把相同的列拿掉。
#57行代码是判断是否为最后一行。
#59行代码,做最后一次合并列。


运行的结果如下:



如果你明白上面的逻辑处理方法,做其它列合并,是轻而易举的事情。

 

上一篇: 创业绕不开的大山变四座:生、死、腾讯、360 下一篇: 没有下一篇了!
发表评论
用户名: 匿名