Web上如何合并DataGrid的列头,100向送
如题目 问题点数:100、回复次数:5Top
1 楼fly_miss(新年新气象)回复于 2004-08-01 01:18:38 得分 20
可以啊
protected override void OnItemCreated(DataGridItemEventArgs e)
{
if ((ListItemType)e.Item.ItemType == ListItemType.Header)
{
// 获得DataGrid的列数,并清除所有单元格
int colcount = e.Item.Cells.Count;
e.Item.Cells.Clear();
// 新建一个单元格
TableCell c = new TableCell();
c.ColumnSpan = colcount;
// 新建一个Label用于存放首行的文字
Label l=new Label();
l.Text = "这是首行文字";
// 添加到DataGrid的首行
c.Controls.Add(l);
e.Item.Cells.AddAt(0, c);
}
}Top
2 楼xinyu_1980(心雨)回复于 2004-08-01 09:02:52 得分 0
关注Top
3 楼goody9807(http://goody9807.cnblogs.com)回复于 2004-08-01 09:03:05 得分 60
、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);
}
Top
4 楼gaofeng2000(高老师)回复于 2004-08-01 09:51:25 得分 0
长见识Top
5 楼cuike519(I will be back!)回复于 2004-08-01 13:17:06 得分 20
http://www.csdn.net/Develop/read_article.asp?id=27465Top




