GridView 合并單元格(多列)

aaajedll 2008-07-10 07:52:34
name department duty email ProView
wkk 開發部 程序員 wkk@163.com 預覽
wkk 資訊課 技術員 wkk@163.com 預覽
wkk 總經理室 稽核組員 wkk@163.com 預覽
wnj 總經理室 稽核組員 wnj@163.com 預覽
wnj 總務課 車輛管理員 wnj@163.com 預覽
我想要得到的效果

開發部 程序員
wkk 資訊課 技術員 wkk@163.com 預覽
總經理室 稽核組員
wnj 總經理室 稽核組員
總務課 車輛管理員 wnj@163.com 預覽

這里我只是隨便寫了幾列,因為列數太多,所以希望大家能夠提供動態的合并單元格代碼
而且預覽列不是綁定列,而是模板列,請大家幫我,就是把相同的值的列合并,但是有個前提
就是以name為標識
...全文
1060 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
FFTiger 2009-07-20
  • 打赏
  • 举报
回复
还有个问题,这样分页的代码怎么办呢?
  • 打赏
  • 举报
回复
请教下啊 那个this.mDate this.mDateRows = 2 this.mDateIndex = 0; 各代表的是什么意思啊?
zidan_cd 2009-03-28
  • 打赏
  • 举报
回复
学习中。。。。。
wwd252 2008-07-11
  • 打赏
  • 举报
回复
看一下
烈火焚身 2008-07-11
  • 打赏
  • 举报
回复
up
城市猎人0611 2008-07-11
  • 打赏
  • 举报
回复
DataList 可以把多列放在一个单元格里。
快乐乔巴 2008-07-11
  • 打赏
  • 举报
回复
我也这么做过,也是自己摸索出来的~~ 呵呵,温故下~~
seesea125 2008-07-11
  • 打赏
  • 举报
回复
我给你的代码就可以,我经常这么做
Catmaoo 2008-07-11
  • 打赏
  • 举报
回复
用 Javascript 实现
wzy_love_sly 2008-07-11
  • 打赏
  • 举报
回复
name	department	duty	email	proview
wkk 開發部 程序員 wkk@163.com 預覽
資訊課 技術員
總經理室 稽核組員
wnj 總經理室 稽核組員 wkk@163.com 預覽
總務課 車輛管理員
wzy_love_sly 2008-07-11
  • 打赏
  • 举报
回复
if object_id('tb') is not null
drop table tb
go
create table tb(name varchar(50),department varchar(50),duty varchar(50),email varchar(50),proview varchar(50))
insert into tb select 'wkk','開發部','程序員','wkk@163.com','預覽'
insert into tb select 'wkk','資訊課','技術員','wkk@163.com','預覽'
insert into tb select 'wkk','總經理室','稽核組員','wkk@163.com','預覽'
insert into tb select 'wnj','總經理室','稽核組員','wkk@163.com','預覽'
insert into tb select 'wnj','總務課','車輛管理員','wkk@163.com','預覽'

select case when row_number() over(partition by name order by orderid)=1 then name else '' end as name,
department, duty,
case when row_number() over(partition by name order by orderid)=1 then email else '' end as email,
case when row_number() over(partition by name order by orderid)=1 then proview else '' end as proview
from (
select row_number() over(order by name) as orderid,* from tb)t


name department duty email proview
wkk 開發部 程序員 wkk@163.com 預覽
資訊課 技術員
總經理室 稽核組員
wnj 總經理室 稽核組員 wkk@163.com 預覽
總務課 車輛管理員

wzy_love_sly 2008-07-11
  • 打赏
  • 举报
回复
開發部 程序員
wkk 資訊課 技術員 wkk@163.com 預覽
總經理室 稽核組員
wnj 總經理室 稽核組員
總務課 車輛管理員 wnj@163.com 預覽

wkk是显示在第二个,wnj显示第个??
amandag 2008-07-11
  • 打赏
  • 举报
回复
楼主的要求不是很好实现,就我的经验,最大的问题是在RowDataBound的时候不能确认究竟是要跨几行
ojekleen 2008-07-10
  • 打赏
  • 举报
回复
楼上的方法可行,用asp.net不要光局限于控件。
http://blog.csdn.net/ojekleen/archive/2007/11/09/1876068.aspx
seesea125 2008-07-10
  • 打赏
  • 举报
回复
ItemDataBound事件里
{
if ((e.Item.ItemType == ListItemType.Item) || (e.Item.ItemType == ListItemType.AlternatingItem))
{
if (e.Item.ItemIndex == 0)
{
this.mDate = e.Item.Cells[0].Text;
this.mDateRows = 2;
this.mDateIndex = 0;
}
else
{
if (e.Item.Cells[0].Text == this.mDate)
{
this.Dg_view.Items[this.mDateIndex].Cells[0].RowSpan = mDateRows;
this.mDateRows += 1;
e.Item.Cells[0].Visible = false;

}
else
{
this.mDate = e.Item.Cells[0].Text;
this.mDateRows = 2;
this.mDateIndex = e.Item.ItemIndex;
}
}
}

}

自己根据情况改一下把
万小萌 2008-07-10
  • 打赏
  • 举报
回复
http://www.vs2005.com/WebControls/a477p1.aspx 看看这个就知道了
gui0605 2008-07-10
  • 打赏
  • 举报
回复
这个你最好在存储过程里面完成合并的工作,可以使用游标来实现

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧