关于三层表头的问题,----ROWSPAN----COLSPAN-----都用到的情况,会的快来啊

xzhy80 2004-09-23 10:31:19
我做的表头是
| | |___________CCC____________| ...表示后面有很多数据,另外我的表用的是自动的列
|AAA|BBB|___DD___|___EE___|........| 因为第二行的表头是从库中读的数据,
| | |_H_|__J_|_H_|__J_|........|

需要的是这样的效果,用的是在ItemDataBound中写"" & "<TD></TD>"
就是说我的所有的表头的内容都是在第一列中写的效果,其他的列都隐藏掉了,
这样一来,不能对数据按列来进行排序,而且,当我执行其他操作,页面提交,进行回送以后,表头就只剩下第一列了,因为把其他的都隐藏了
现在想重写表头
我想问问我要的这一效果
怎么写表头才能实现
谢谢

解决了另外开贴给分,并贴出代码来

谢谢
...全文
272 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
xzhy80 2004-09-24
  • 打赏
  • 举报
回复
up
rickjelly2004 2004-09-23
  • 打赏
  • 举报
回复
没看懂???
xzhy80 2004-09-23
  • 打赏
  • 举报
回复
chnama(chnama
Repeater控件不支持排序阿
即使把其他效果出來了
也不行啊
chnama 2004-09-23
  • 打赏
  • 举报
回复
强烈推荐Repeater控件
goody9807 2004-09-23
  • 打赏
  • 举报
回复
DataGrid显示双层表头
http://xml.sz.luohuedu.net/xml/ShowDetail.asp?id=B3F3462D-DC34-41CE-9FEE-6965B2A3D1AD
假设你的DataGrid有三列,现在想将前两列作为"大类1",第三列作为"大类2",现在,你可以在ItemDataBound事件中加入下面的代码:
if (e.Item.ItemType == ListItemType.Header)
{
e.Item.Cells[0].ColumnSpan = 2;
e.Item.Cells[0].Text = "大类1</td><td>大类2</td></tr><tr><td>" + e.Item.Cells[0].Text;
}
用这个方法可以为任意添加新行。
C#
if (e.Item.ItemType == ListItemType.Header)
{
DataGridItem dgi = new DataGridItem(0,-1,ListItemType.Header);
DataGridItem dgi1= new DataGridItem(0,-1,ListItemType.Header);
Table tb = new Table();
tb = (Table)DataGrid1.Controls[0];
tb.Rows.AddAt(0,dgi);
tb.Rows.AddAt(1,dgi1);
TableCell tc = new TableCell();
TableCell tc1 = new TableCell();
TableCell tc2 = new TableCell();
TableCell tc22 = new TableCell();
tc.Text = "ddd";
tc.ColumnSpan = 1;
dgi.Cells.Add(tc);
tc1.Text = "ddd2";
tc1.ColumnSpan = 1;
dgi.Cells.Add(tc1);
tc2.Text = "ddd";
tc2.ColumnSpan = 1;
dgi1.Cells.Add(tc2);
tc22.Text = "ddd2";
tc22.ColumnSpan = 1;
dgi1.Cells.Add(tc22);

}


VB.NET显示双层表头
Dim dgi As DataGridItem
Dim dgi1 As DataGridItem
Dim tc As New TableCell()
Dim tc1 As New TableCell()
Dim tc2 As New TableCell()
Dim tc22 As New TableCell()
Dim tb As New Table()
If (e.Item.ItemType = ListItemType.Header) Then

dgi = New DataGridItem(0, -1, ListItemType.Header)
dgi1 = New DataGridItem(0, -1, ListItemType.Header)
tb = CType(DataGrid1.Controls(0), Table)
tb.Rows.AddAt(0, dgi)
tb.Rows.AddAt(1, dgi1)
tc.Text = "ddd"
tc.ColumnSpan = 1
dgi.Cells.Add(tc)
tc1.Text = "ddd2"
tc1.ColumnSpan = 1
dgi.Cells.Add(tc1)

tc2.Text = "ddd"
tc2.ColumnSpan = 1
dgi1.Cells.Add(tc2)
tc22.Text = "ddd2"
tc22.ColumnSpan = 1
dgi1.Cells.Add(tc22)
End If
dayasky 2004-09-23
  • 打赏
  • 举报
回复
伙计,这样的效果用datagrid做太难为它了
用table画吧
循环生成
我只会这招了。
changlin365 2004-09-23
  • 打赏
  • 举报
回复
up

62,046

社区成员

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

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

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

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