会员
周边
众包
新闻
博问
闪存
赞助商
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
终生成长
2018, 终生成长
博客园
首页
新随笔
联系
订阅
管理
随笔 - 118
文章 - 55
评论 - 208
阅读 -
28万
Datagrid中隐藏、合并相同文字列
/**/
///
<summary>
///
方法编号:06
///
方法名称:CombineRepeatedCell
///
内容摘要:文字相同的列的合并
///
算法思路:将相同的连续单元格想象成“块”,将"块"放置在数据容器中,全部遍历相加需合并的单元格的rowspan,来进行合并隐藏的动作
///
</summary>
///
<param name="m_arrIndex">
需要合并的列的index数据
</param>
public
void
CombineRepeatedCell(DataGrid m_grid,
int
[] m_arrIndex)
{
foreach
(
int
m_colIndex
in
m_arrIndex)
//
列
{
ArrayList m_hidCells
=
new
ArrayList();
//
得到需合并的item
for
(
int
i
=
0
; i
<
m_grid.Items.Count; i
++
)
{
//
第一行不用比较,并终止比较于最后一行
if
(i
==
0
||
i
==
(m_grid.PageSize
*
m_grid.CurrentPageIndex))
{
m_hidCells.Add(m_grid.Items[i].Cells[m_colIndex]);
continue
;
}
//
文字相同时
if
(
string
.Compare(m_grid.Items[i].Cells[m_colIndex].Text,m_grid.Items[i
-
1
].Cells[m_colIndex].Text)
==
0
)
{
m_hidCells.Add(m_grid.Items[i].Cells[m_colIndex]);
}
//
文字不同,或文字相同但已到最后一行
if
(m_grid.Items[i].Cells[m_colIndex].Text
!=
m_grid.Items[i
-
1
].Cells[m_colIndex].Text
||
i
==
m_grid.Items.Count
-
1
)
{
//
一旦发现有不同的文字,即表示单元格块的结束
if
(m_hidCells.Count
<=
0
)
//
无需合并
{
return
;
}
int
m_iRowspan
=
0
;
//
待合并的单元格的Rowspan
foreach
(TableCell c
in
m_hidCells)
{
m_iRowspan
+=
(c.RowSpan
>
0
)
?
c.RowSpan :
1
;
}
for
(
int
ii
=
1
; ii
<=
m_hidCells.Count
-
1
; ii
++
)
{
((TableCell)m_hidCells[ii]).Visible
=
false
;
}
((TableCell)m_hidCells[
0
]).RowSpan
=
m_iRowspan;
//
开始制作新的容器
m_hidCells
=
new
ArrayList();
m_hidCells.Add(m_grid.Items[i].Cells[m_colIndex]);
continue
;
}
//
for 结束
}
//
foreach 结束
}
//
foreach (int i in m_arrIndex) 结束
}
//
CombineRepeatedCell 结束
/**/
///
<summary>
///
方法编号:03
///
方法名称:HideRepeatedCell
///
内容摘要:文字相同的列的隐藏
///
算法思路:不能在循环ITEM的时候进行合并或隐藏,以免比较出现错误
///
只能暂先放置在容器中,全部遍历方进行合并隐藏的动作
///
</summary>
///
<param name="m_grid"></param>
///
<param name="m_arrIndex">
需要隐藏的列的index数据
</param>
public
void
HideRepeatedCell(DataGrid m_grid,
int
[] m_arrIndex)
{
if
(m_arrIndex.Length
<=
0
)
//
检查特异情况
{
return
;
}
//
处理重复时隐藏
ArrayList m_hidCells
=
new
ArrayList();
//
得到需隐藏的item
foreach
(DataGridItem item
in
m_grid.Items)
{
if
(item.ItemType
==
ListItemType.Item
||
item.ItemType
==
ListItemType.AlternatingItem)
{
//
如果为第一行,且跳过
if
(item.ItemIndex
==
0
||
item.ItemIndex
==
(m_grid.PageSize
*
m_grid.CurrentPageIndex))
{
continue
;
}
foreach
(
int
m_colIndex
in
m_arrIndex)
{
if
(item.Cells[m_colIndex].Text
==
m_grid.Items[item.ItemIndex
-
1
].Cells[m_colIndex].Text)
{
m_hidCells.Add(item.Cells[m_colIndex]);
}
else
{
break
;
}
}
}
//
if (item.ItemType == ListItemType.Item
结束
}
//
foreach (DataGridItem item in m_grid.Items) 结束
//
开始隐藏
foreach
(
object
obj
in
m_hidCells)
{
((TableCell)obj).Text
=
string
.Empty;
}
}
//
HideRepeatedCell 结束
愿一路奔跑不退缩,到目前一直从事.Net的B/S,C/S企业应用研发
分类:
.Net/C#
好文要顶
关注我
收藏该文
微信分享
Elaine Shi
粉丝 -
78
关注 -
45
+加关注
0
0
升级成为会员
«
上一篇:
.net:服务器button提交前进行客户端效验的解决方法
»
下一篇:
导出Excel并设置样式
posted @
2005-09-07 13:49
Elaine Shi
阅读(
571
) 评论(
2
)
编辑
收藏
举报
刷新页面
返回顶部
登录后才能查看或发表评论,立即
登录
或者
逛逛
博客园首页
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
编辑推荐:
·
Java 中堆内存和栈内存上的数据分布和特点
·
开发中对象命名的一点思考
·
.NET Core内存结构体系(Windows环境)底层原理浅谈
·
C# 深度学习:对抗生成网络(GAN)训练头像生成模型
·
.NET 适配 HarmonyOS 进展
阅读排行:
·
用 DeepSeek 给对象做个网站,她一定感动坏了
·
DeepSeek+PageAssist实现本地大模型联网
·
手把手教你更优雅的享受 DeepSeek
·
Java轻量级代码工程
·
从 14 秒到 1 秒:MySQL DDL 性能优化实战
公告
昵称:
Elaine Shi
园龄:
20年1个月
粉丝:
78
关注:
45
搜索
最新随笔
1.笔记《Hbase 权威指南》
2.读Java 804 - Quick refresher
3.804 pretest 解题
4.JAVA SE 803 考试前突击
5.Hadoop学习笔记之(二):实验Hadoop的文件块复制删除操作感受强大的容灾性
6.WCF REST IIS6配置各种伤不起
7.代码笔记:使用C#转移Wordpress博客到为知笔记或Evernote
8.Hadoop准备篇之(一):Page Rank算法初探
9.Hadoop学习笔记(一):零Linux基础安装hadoop过程笔记
10.代码笔记:使用Xml2Linq和CodeDom自动重整多语化资源文件
我的标签
C#
(14)
总结一下散乱的开发点滴
(5)
Oracle
(3)
Links recommended
(3)
jQuery
(3)
工具使用
(3)
OOD
(2)
资源
(2)
设计模式
(2)
架构
(2)
更多
随笔分类
(111)
.Net/C#(74)
Database(10)
Hadoop/BigData(4)
Java(1)
Javascript & jQuery(11)
软件应用(2)
随笔(9)
文章分类
(45)
1、代码实例(17)
2、数据库(3)
3、值得收藏(程序)(18)
4、工具推荐(3)
5、值得收藏(非程序)(4)
最新评论
1. Re:Hadoop学习笔记(一):零Linux基础安装hadoop过程笔记
@ xcf007pu,对,每行一条...
--Elaine Shi
2. Re:抓虫子:RA-06550...nPLS-00306: 调用 'MEETING_NOTICE_CREATE' 时参数个数或类型
十年前的文档、厉害了
--LOVE——J
3. Re:Hadoop学习笔记(一):零Linux基础安装hadoop过程笔记
@ philip502引用我也要从.Net的B/S,C/S企业应用研发转到Hadoop相关业务了,跟随版主一起学习现在转得如何?我还在.net的池子里面没游出来...
--Elaine Shi
4. Re:Hadoop学习笔记(一):零Linux基础安装hadoop过程笔记
@ xcf007每个人试的环境还是不一样的- - 我建了很多个vm实例,给参考,过程中掉的坑,都是宝啊~...
--Elaine Shi
5. Re:Hadoop学习笔记(一):零Linux基础安装hadoop过程笔记
@ xcf007要看版本喔,这种开源的项目,不同版本间的差异还是蛮大的,一点小不同,就会失败...
--Elaine Shi
6. Re:Hadoop学习笔记(一):零Linux基础安装hadoop过程笔记
2016-06-15 00:06:37,310 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: org.apache.hadoop.hdf...
--xcf007
7. Re:Hadoop学习笔记(一):零Linux基础安装hadoop过程笔记
g. slaves加入从属节点信息, 这儿是h2, h3你这里太坑了:slaves里应该h2h3每行一条!!!...
--xcf007
8. Re:Hadoop学习笔记(一):零Linux基础安装hadoop过程笔记
iface eth9 inet static #静态ip
eth9是个什么鬼?
不是eth0?
--xcf007
9. Re:Hadoop学习笔记(一):零Linux基础安装hadoop过程笔记
你好,我想问个问题。
对于你文中的这句话:非CLONE的话,就三台servers一路执行吧。你所说的非CLONE,而是三台servers是指弄三个虚拟机,然后分主和从这样的cluster吗?
--悲画扇
10. Re:Hadoop准备篇之(一):Page Rank算法初探
@ 康跃伟请自行搜索 Google 三大论文中文版...
--Elaine Shi
点击右上角即可分享
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· 用 DeepSeek 给对象做个网站,她一定感动坏了
· DeepSeek+PageAssist实现本地大模型联网
· 手把手教你更优雅的享受 DeepSeek
· Java轻量级代码工程
· 从 14 秒到 1 秒:MySQL DDL 性能优化实战