Home All Groups Group Topic Archive Search About
Author
4 May 2005 8:28 AM
soh chau hi via DotNetMonster.com
Hi. Is there a way to have a header span 2 columns in a .NET windows form
DataGrid control?

--
Message posted via http://www.dotnetmonster.com

Author
10 May 2005 3:09 AM
Ken Cox [Microsoft MVP]
Did you mean Windows form? This is an ASP.NET group.

If you meant Webform, here's some code:


Ken
Microsoft MVP [ASP.NET]
Toronto


  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.Data­GridItemEventArgs) _
    Handles DataGrid1.ItemDataBound
        ' Have the first column header span
        ' two columns
        ' by Ken Cox Microsoft MVP [ASP.NET]
        If e.Item.ItemType = ListItemType.Header Then
            ' Declare variables
            Dim dgItem As DataGridItem
            Dim tcells As TableCellCollection
            Dim fcell As TableCell
            Dim scell As TableCell
            ' Get a reference to the header row item
            dgItem = e.Item
            ' Get a reference to the cells in the
            ' header row item
            tcells = e.Item.Cells
            ' Get a reference to the cell we want to
            ' span. In this case, the first cell
            fcell = e.Item.Cells(0)
            ' Set the text of the span cell
            fcell.Text = "This is the spanned cell"
            ' Set the columns to span to 2
            fcell.ColumnSpan = 2
            ' Get a reference to the second cell
            scell = e.Item.Cells(1)
            ' Remove the second cell because it will
            ' be replaced by the spanning column
            dgItem.Cells.Remove(scell)
        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


  <form id="Form1" method="post" runat="server">
   <asp:DataGrid id="DataGrid1" runat="server"></asp:DataGrid>
  </form>



Show quoteHide quote
"soh chau hi via DotNetMonster.com" <forum@nospam.DotNetMonster.com> wrote
in message news:6b20202b7c8b41a5912a236a7652c701@DotNetMonster.com...
> Hi. Is there a way to have a header span 2 columns in a .NET windows form
> DataGrid control?
>
> --
> Message posted via http://www.dotnetmonster.com