DataGrid生成多行表头

我们一般在写报表时候会遇到USER苛刻的需求,如对查询的Grid中表头要多行,搞的像Excel搞的各位开发人员焦头烂额,不过要是真正实现其功能也不算太难,请看详细分解。

 如果user需求如下表头:

A B C
D E

首先按照平常的写法绑定DataGrid。然后在ItemCreated事件中加入
       

protected void DataGrid1_ItemCreated(object sender,DataGridItemEventArgs e)
{
if(e.Item.ItemType == ListItemType.Header)
{
TableCellCollection tcl 
= e.Item.Cells;
tcl.Clear(); 
//清除表头内容

tcl.Add(
new TableHeaderCell());
tcl[
0].RowSpan = 2;
tcl[
0].Text = "A";

tcl.Add(
new TableHeaderCell());
tcl[
1].ColumnSpan = 2;
tcl[
1].Text = "B";

tcl.Add(
new TableHeaderCell());
tcl[
2].RowSpan = 2;
tcl[
2].Text = "C</th><tr>";
tcl[
2].Text += "<tr><th>D</th><th>E"//记住这行的结尾哦。
}

}


简单吧。要注意表头行的第一层要建立对象第二层及以后就要用HTML写上,最后还要注意结尾没有结束的tag.
这是我的经验哦,记得为我加油!

posted @ 2008-07-09 21:08  芙蓉客  阅读(414)  评论(0编辑  收藏  举报