为 ASP.NET DataGrid 添加额外的标题






3.22/5 (3投票s)
本文档解释了如何向标准的 ASP.NET DataGrid 添加额外的标题项。
引言
本文档解释了如何向标准的 ASP.NET DataGrid
添加额外的标题项。
使用代码
代码非常简单。网格是使用 DataGridTable
对象构建的。我们所要做的就是在自定义网格的 CreateControlHierarchy
方法中的 Rows
集合中添加一个 DataGridItem
。现在让我让代码来说话
Protected Overrides Sub CreateControlHierarchy(ByVal useDataSource As Boolean)
MyBase.CreateControlHierarchy(useDataSource)
If Not ShowExtraHeader Then Return
If Controls.Count > 0 Then
'get all grid's items (rows)
Dim rows As TableRowCollection = DirectCast(Controls(0), Object).Rows
'create extra header item
Dim extraHeaderRow As DataGridItem = CreateItem(-1, -1, ListItemType.Header)
'set an id that will identify it in ItemCreated event
extraHeaderRow.ID = "extraheader"
'create an event attached to our item
Dim extraHeaderRowArgs As New DataGridItemEventArgs(extraHeaderRow)
'call ItemCreated event
OnItemCreated(extraHeaderRowArgs)
'finally add the extra header item to the items's collection
rows.AddAt(0, extraHeaderRow)
End If
End Sub
让我们看看如何在实际场景中使用这段代码
Private Sub g_ItemCreated(ByVal sender As Object, ByVal e _
As System.Web.UI.WebControls.DataGridItemEventArgs) Handles g.ItemCreated
If e.Item.ItemType = ListItemType.Header Then
If e.Item.ID = "extraheader" Then
Dim refreshCell As New TableCell
refreshCell.ColumnSpan = 2
refreshCell.HorizontalAlign = HorizontalAlign.Center
Dim btnRefresh As New Button
btnRefresh.Text = "Refresh"
refreshCell.Controls.Add(btnRefresh)
AddHandler btnRefresh.Click, AddressOf btnRefresh_Click
Dim parentsCell As New TableCell
parentsCell.ColumnSpan = 2
parentsCell.HorizontalAlign = HorizontalAlign.Center
parentsCell.Text = "Parents"
e.Item.Cells.Add(refreshCell)
e.Item.Cells.Add(parentsCell)
End If
End If
End Sub
就这样!查看演示项目以了解所有细节。
历史
- 2005年12月10日 - 版本 1.0。