65.9K
CodeProject 正在变化。 阅读更多。
Home

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

starIconstarIconstarIcon
emptyStarIcon
starIcon
emptyStarIcon

3.22/5 (3投票s)

2005年12月9日

CPOL
viewsIcon

60053

downloadIcon

216

本文档解释了如何向标准的 ASP.NET DataGrid 添加额外的标题项。

Sample Image - grid.jpg

引言

本文档解释了如何向标准的 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。
© . All rights reserved.