如何为ASP.NET GridView创建双行标题

时间:2008-11-17 21:00:08

标签: asp.net gridview

我的数据是这样的,我想为特定记录显示Employee和Supervisor的值。我将向您展示一个粗略的例子,而不是描述它:

<table><tr>
<th colspan="3">Employee</th>
<th colspan="3">Supervisor</th>
</tr><tr>
<th>Name</th>
<th>Last Activity</th>
<th>Count</th>
<th>Name</th>
<th>Last Activity</th>
<th>Count</th>
</tr>
</table>

如何为GridView创建此内容?我基本上想要2行标题,有些单元格应该跨越多列。

3 个答案:

答案 0 :(得分:0)

您是否需要gridview的编辑或排序功能?除了在gridview中显示直表格数据之外,我发现尝试做任何事情都是耐心的练习。

为简单起见,如果您的网格是只读的话,我建议您使用转发器并编写自己的表HTML。

修改以回复以下comment

  

这可能是我们采取的路线,但出于相互教育的目的,我想知道你是否可以用GridView做这样的事情。 - DLarsen

你可以,但这绝不容易。如果你还没有,你可以负担得起切换,你可能想看看ASP.NET MVC,它可以让你完全控制HTML。您可能希望查看有关数据访问的一般链接。 http://www.asp.net/learn/data-access/#15,#27,#51-53可以为您提供与您的gridview问题相关的一些想法。

答案 1 :(得分:0)

由Galwegian发布,可以通过CSS表达式实现冻结数据网格。但这仅适用于IE7及以下版本。

对于IE 7以上的版本以及Firefox等其他浏览器,下面的代码段应该有效。

function setWidth () {
    document.getElemenById("myDiv").style.left = body.clientWidth / 2 - oDiv.offsetWidth / 2;
    document.getElemenById("myDiv").style.top = document.body.clientHeight / 2 - oDiv.offsetHeight / 2;
}

有关详细信息,请参阅http://techbookshelf.blogspot.in/2012/09/expressions-in-css.html

答案 2 :(得分:0)

一个选项可以是处理RowDataBound,在RowType for Header上设置自己的RenderMethod并自己编写HTML。

e.Row.SetRenderMethodDelegate(New RenderMethod(AddressOf RenderHeader))