先看下表:
业务员 地 区
北京 上海 深圳
张三 100 200 300
实际上asp.net下的datagrid只不过是一个htmltable,只不过在htmltable的基础上添加了很多属性、方法,纳入viewstate机制,来生成、控制它;有了这一点认识,事情就很好办了:
我们可以在属性生成器中可以定义列的表头,它实际上只不过是在列之间插入了“</td><td>”的html标记,如此而已;因此根据上面的例子,可以在第3列的header里输入以下内容“</td></tr><tr><td>北京</td><td>上海</td><td>深圳</td></tr>”,这时你会发现2层表头就出现了:
业务员 地 区
北京 上海 深圳
张三 100 200 300
但是显然还不够,因为我们还需要行、列的合并
我们可以在datagrid的itemdatabound事件中处理
if(e.item.itemtype == listitemtype.header)
{
e.item.cells[0].rowspan = 2;
e.item.cells[1].columnspan = 3;
e.item.cells[2].visible = false;
e.item.cells[3].visible = false;
}
