Professional Web Applications Themes

Add additional row into header? - ASP.NET Data Grid Control

Hello, does anybody know how I can add an additional row above the datagrid header?...

Sponsored Links
  1. #1

    Default Add additional row into header?

    Hello,

    does anybody know how I can add an additional row above
    the datagrid header?
    Sponsored Links
    SK Guest

  2. #2

    Default Re: Add additional row into header?

    Here's some code to show two headers:

    <asp:DataGrid id="DataGrid1" runat="server" AutoGenerateColumns="False"
    ShowHeader="False">
    <Columns>
    <asp:BoundColumn DataField="Subject"></asp:BoundColumn>
    <asp:BoundColumn DataField="Day"></asp:BoundColumn>
    </Columns>
    </asp:DataGrid>


    Dim dt As DataTable
    Private Sub Page_Load _
    (ByVal sender As System.Object, _
    ByVal e As System.EventArgs) _
    Handles MyBase.Load
    DataGrid1.ShowHeader = True
    DataGrid1.DataSource = CreateDataSource()
    DataGrid1.DataBind()
    End Sub
    Private Sub DataGrid1_ItemDataBound _
    (ByVal sender As Object, _
    ByVal e As _
    System.Web.UI.WebControls.DataGridItemEventArgs) _
    Handles DataGrid1.ItemDataBound
    ' Add a second header with a flag button in it
    ' by Ken Cox Microsoft MVP [ASP.NET]
    If e.Item.ItemType = ListItemType.Header Then
    ' Get the collection of cells from the grid
    Dim tcells As TableCellCollection
    ' Create an imagebutton
    Dim imgBtn As New ImageButton
    ' Assign the URL
    imgBtn.ImageUrl = "http://www.gc.ca/images/flag.gif"
    ' Get the collection of existing cells so we can get a count
    tcells = e.Item.Cells
    ' Create a new cell
    Dim fcell As New TableCell
    ' Add the image button to the new table cell
    fcell.Controls.Add(imgBtn)
    ' Span the cell to however many columns there are
    fcell.ColumnSpan = tcells.Count
    ' Create a new header object
    Dim dgItemHeader As New DataGridItem _
    (0, 0, ListItemType.Header)
    ' Add the cell to the header
    dgItemHeader.Cells.Add(fcell)
    dgItemHeader.Visible = True
    ' Add the header to the datagrid
    DataGrid1.Controls(0).Controls.Add(dgItemHeader)
    End If
    End Sub
    Function CreateDataSource() As ICollection
    ' Create sample data for the DataList control.
    dt = New DataTable
    Dim dr As DataRow

    ' Define the columns of the table.
    dt.Columns.Add(New DataColumn("Student", GetType(String)))
    dt.Columns.Add(New DataColumn("Subject", GetType(String)))
    dt.Columns.Add(New DataColumn("Day", GetType(String)))

    ' Populate the table with sample values.
    dr = dt.NewRow
    dr(0) = "Ben"
    dr(1) = "English"
    dr(2) = "Thursday"
    dt.Rows.Add(dr)
    dr = dt.NewRow
    dr(0) = "Ben"
    dr(1) = "Geology"
    dr(2) = "Monday"
    dt.Rows.Add(dr)
    dr = dt.NewRow
    dr(0) = "Ben"
    dr(1) = "Physics"
    dr(2) = "Tuesday"
    dt.Rows.Add(dr)
    Dim dv As DataView = New DataView(dt)
    Return dv
    End Function

    "SK" <anonymousdiscussions.microsoft.com> wrote in message
    news:297e01c51505$d71cb610$a501280aphx.gbl...
    > Hello,
    >
    > does anybody know how I can add an additional row above
    > the datagrid header?
    Ken Cox [Microsoft MVP] Guest

  3. #3

    Default Re: Add additional row into header?

    Check out this article
    [url]http://www.extremeexperts.com/Net/Articles/ExtendingDataGrid.aspx[/url]

    --
    -Saravana
    [url]http://dotnetjunkies.com/WebLog/saravana/[/url]
    [url]www.ExtremeExperts.com[/url]



    "SK" <anonymousdiscussions.microsoft.com> wrote in message
    news:297e01c51505$d71cb610$a501280aphx.gbl...
    > Hello,
    >
    > does anybody know how I can add an additional row above
    > the datagrid header?

    Saravana Guest

  4. #4

    Default Re: Add additional row into header?

    Many thanks Ken,

    how about if I want to add an additional row beneath
    each exising row?

    Any Idea how I can do that? I tried it, but it showed me
    that the message:

    Server Error in '/intranet' Application.

    Thanks
    >-----Original Message-----
    >Here's some code to show two headers:
    >
    > <asp:DataGrid id="DataGrid1" runat="server"
    AutoGenerateColumns="False"
    >ShowHeader="False">
    > <Columns>
    > <asp:BoundColumn
    DataField="Subject"></asp:BoundColumn>
    > <asp:BoundColumn DataField="Day"></asp:BoundColumn>
    > </Columns>
    > </asp:DataGrid>
    >
    >
    > Dim dt As DataTable
    > Private Sub Page_Load _
    > (ByVal sender As System.Object, _
    > ByVal e As System.EventArgs) _
    > Handles MyBase.Load
    > DataGrid1.ShowHeader = True
    > DataGrid1.DataSource = CreateDataSource()
    > DataGrid1.DataBind()
    > End Sub
    > Private Sub DataGrid1_ItemDataBound _
    > (ByVal sender As Object, _
    > ByVal e As _
    > System.Web.UI.WebControls.DataGridItemEventArgs) _
    > Handles DataGrid1.ItemDataBound
    > ' Add a second header with a flag button in it
    > ' by Ken Cox Microsoft MVP [ASP.NET]
    > If e.Item.ItemType = ListItemType.Header Then
    > ' Get the collection of cells from the grid
    > Dim tcells As TableCellCollection
    > ' Create an imagebutton
    > Dim imgBtn As New ImageButton
    > ' Assign the URL
    > imgBtn.ImageUrl
    = "http://www.gc.ca/images/flag.gif"
    > ' Get the collection of existing cells so we
    can get a count
    > tcells = e.Item.Cells
    > ' Create a new cell
    > Dim fcell As New TableCell
    > ' Add the image button to the new table cell
    > fcell.Controls.Add(imgBtn)
    > ' Span the cell to however many columns there
    are
    > fcell.ColumnSpan = tcells.Count
    > ' Create a new header object
    > Dim dgItemHeader As New DataGridItem _
    > (0, 0, ListItemType.Header)
    > ' Add the cell to the header
    > dgItemHeader.Cells.Add(fcell)
    > dgItemHeader.Visible = True
    > ' Add the header to the datagrid
    > DataGrid1.Controls(0).Controls.Add
    (dgItemHeader)
    > End If
    > End Sub
    > Function CreateDataSource() As ICollection
    > ' Create sample data for the DataList control.
    > dt = New DataTable
    > Dim dr As DataRow
    >
    > ' Define the columns of the table.
    > dt.Columns.Add(New DataColumn("Student", GetType
    (String)))
    > dt.Columns.Add(New DataColumn("Subject", GetType
    (String)))
    > dt.Columns.Add(New DataColumn("Day", GetType
    (String)))
    >
    > ' Populate the table with sample values.
    > dr = dt.NewRow
    > dr(0) = "Ben"
    > dr(1) = "English"
    > dr(2) = "Thursday"
    > dt.Rows.Add(dr)
    > dr = dt.NewRow
    > dr(0) = "Ben"
    > dr(1) = "Geology"
    > dr(2) = "Monday"
    > dt.Rows.Add(dr)
    > dr = dt.NewRow
    > dr(0) = "Ben"
    > dr(1) = "Physics"
    > dr(2) = "Tuesday"
    > dt.Rows.Add(dr)
    > Dim dv As DataView = New DataView(dt)
    > Return dv
    > End Function
    >
    >"SK" <anonymousdiscussions.microsoft.com> wrote in
    message
    >news:297e01c51505$d71cb610$a501280aphx.gbl...
    >> Hello,
    >>
    >> does anybody know how I can add an additional row
    above
    >> the datagrid header?
    >
    >.
    >
    SK Guest

  5. #5

    Default Re: Add additional row into header?

    I mean it was showing me the error:

    Specified argument was out of the range of valid values.
    Parameter name: index

    Controls(0).Controls.AddAt(2, dgItem)

    Sorry, pasted the wrong statement in the previous messahe.
    >-----Original Message-----
    >Here's some code to show two headers:
    >
    > <asp:DataGrid id="DataGrid1" runat="server"
    AutoGenerateColumns="False"
    >ShowHeader="False">
    > <Columns>
    > <asp:BoundColumn
    DataField="Subject"></asp:BoundColumn>
    > <asp:BoundColumn DataField="Day"></asp:BoundColumn>
    > </Columns>
    > </asp:DataGrid>
    >
    >
    > Dim dt As DataTable
    > Private Sub Page_Load _
    > (ByVal sender As System.Object, _
    > ByVal e As System.EventArgs) _
    > Handles MyBase.Load
    > DataGrid1.ShowHeader = True
    > DataGrid1.DataSource = CreateDataSource()
    > DataGrid1.DataBind()
    > End Sub
    > Private Sub DataGrid1_ItemDataBound _
    > (ByVal sender As Object, _
    > ByVal e As _
    > System.Web.UI.WebControls.DataGridItemEventArgs) _
    > Handles DataGrid1.ItemDataBound
    > ' Add a second header with a flag button in it
    > ' by Ken Cox Microsoft MVP [ASP.NET]
    > If e.Item.ItemType = ListItemType.Header Then
    > ' Get the collection of cells from the grid
    > Dim tcells As TableCellCollection
    > ' Create an imagebutton
    > Dim imgBtn As New ImageButton
    > ' Assign the URL
    > imgBtn.ImageUrl
    = "http://www.gc.ca/images/flag.gif"
    > ' Get the collection of existing cells so we
    can get a count
    > tcells = e.Item.Cells
    > ' Create a new cell
    > Dim fcell As New TableCell
    > ' Add the image button to the new table cell
    > fcell.Controls.Add(imgBtn)
    > ' Span the cell to however many columns there
    are
    > fcell.ColumnSpan = tcells.Count
    > ' Create a new header object
    > Dim dgItemHeader As New DataGridItem _
    > (0, 0, ListItemType.Header)
    > ' Add the cell to the header
    > dgItemHeader.Cells.Add(fcell)
    > dgItemHeader.Visible = True
    > ' Add the header to the datagrid
    > DataGrid1.Controls(0).Controls.Add
    (dgItemHeader)
    > End If
    > End Sub
    > Function CreateDataSource() As ICollection
    > ' Create sample data for the DataList control.
    > dt = New DataTable
    > Dim dr As DataRow
    >
    > ' Define the columns of the table.
    > dt.Columns.Add(New DataColumn("Student", GetType
    (String)))
    > dt.Columns.Add(New DataColumn("Subject", GetType
    (String)))
    > dt.Columns.Add(New DataColumn("Day", GetType
    (String)))
    >
    > ' Populate the table with sample values.
    > dr = dt.NewRow
    > dr(0) = "Ben"
    > dr(1) = "English"
    > dr(2) = "Thursday"
    > dt.Rows.Add(dr)
    > dr = dt.NewRow
    > dr(0) = "Ben"
    > dr(1) = "Geology"
    > dr(2) = "Monday"
    > dt.Rows.Add(dr)
    > dr = dt.NewRow
    > dr(0) = "Ben"
    > dr(1) = "Physics"
    > dr(2) = "Tuesday"
    > dt.Rows.Add(dr)
    > Dim dv As DataView = New DataView(dt)
    > Return dv
    > End Function
    >
    >"SK" <anonymousdiscussions.microsoft.com> wrote in
    message
    >news:297e01c51505$d71cb610$a501280aphx.gbl...
    >> Hello,
    >>
    >> does anybody know how I can add an additional row
    above
    >> the datagrid header?
    >
    >.
    >
    SK Guest

Similar Threads

  1. Image in header column (not replacing column header text)
    By hansiman in forum ASP.NET Data Grid Control
    Replies: 3
    Last Post: February 7th, 12:17 AM
  2. additional CPU
    By jarcar in forum AIX
    Replies: 4
    Last Post: September 26th, 02:03 PM
  3. add additional NIC to sparcstation 4?
    By Darren Dunham in forum Sun Solaris
    Replies: 0
    Last Post: July 15th, 07:43 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139