datagrid两个双层表头对齐问题,高手请进

来源:百度知道 编辑:UC知道 时间:2024/06/10 23:43:39
要想实现DataGrid表头格式如下:
//
出差伙食补助 车船费
天数 金额 汽车 轮船
//
有方法吗?
也就是要实现两行,第一行有大标题,第二行则是其全部内容,
,但很难与DataGrid的格线对齐. 要求在一个datagrid里实现,不能使两个 。我的部分代码如下
if ( e.Item.ItemType == ListItemType.Header )
{
TableCellCollection tcl = e.Item.Cells;

tcl.Clear();

//int i=1;

tcl.Add( new TableHeaderCell() );

tcl[0].RowSpan = 2;

tcl[0].Text = "abcお愿いします。";

tcl.Add( new TableHeaderCell() );

tcl[1].RowSpan = 2;

tcl[1].Text = "お疲れ様です。";

//for(;i<5;i++)
//{
tcl.Add( new TableHeaderCell() );

以前做过类似的表头

主要就是要根据规定格式处理好Table的colspan与rowspan关系。
建议可以先在HTML把相应表格画出来,然后再在后台cs中对应好RowSpan,ColumnSpan

if(e.Item.ItemType==ListItemType.Header)
{
DataGridItem head = e.Item as DataGridItem;
DataGridItem h1 = new DataGridItem(0,-1,ListItemType.Header);
DataGridItem h2 = new DataGridItem(0,-1,ListItemType.Header);

Table grid = head.Parent as Table;
grid.Rows.AddAt(0,h1);
grid.Rows.AddAt(1,h2);

...

grid.Rows.RemoveAt(grid.Rows.Count-1);
}