Jump to content
Xtreme .Net Talk

Datagrid columns


Recommended Posts

Guest Eregnon
Posted

There's probably a simple answer to this, but I just don't see it.

 

I have a datagrid. I have a data set with a table. I want to only display selected columns from the table in the grid. How do I do that? Every method I see in the help examples displays the entire table.

Posted (edited)

Hi Eregnon

 

I thought it would be simple as well, but here is what I did.

 

Firstly, don't set up the grid properties DataSource & TableSource. I found it easier to set them in code.

 

I've copied the code from my form (Saves on spelling mistakes)

 

I've got a grid called grdHotelGroups, but the code should be self explanatory (I think)

 

You have to set up a DataGridTableStyle and a DataGridTextBoxColumn

 

I copied the code from MSDN and changed it to suit. I left the comments as they make more sense than me.

 

Hope this helps

 

 

Private Sub FormatHGGrid()

       With Me.grdHotelGroups
           .DataSource = HotelGroupData
           .DataMember = "tblHotelGroup"

           .BorderStyle = BorderStyle.None
           .CaptionFont = New Font("Tahoma", 10.0!, FontStyle.Bold)
           .CaptionText = "Hotel Groups"
           .Font = New Font("Tahoma", 8.0!)
       End With

       ' Put as much of the formatting as possible here.
       Dim grdTableStyle1 As New DataGridTableStyle()
       With grdTableStyle1
           .HeaderFont = New Font("Tahoma", 8.0!, FontStyle.Bold)
           .RowHeadersVisible = False
           ' Do not forget to set the MappingName property. 
           ' Without this, the DataGridTableStyle properties
           ' and any associated DataGridColumnStyle objects
           ' will have no effect.
           .MappingName = "tblHotelGroup"
           .PreferredColumnWidth = 125
           .PreferredRowHeight = 15
       End With

       ' Format each column that you want to appear in the DataGrid.
       ' In most cases, the DataGridTextBoxColumn class is appropriate.
       ' However, you can also use the DataGridBoolColumn class. Both
       ' of these extend the MustInherit DataGridColumnStyle class. Notice
       ' that the column style properties available to you are more limited
       ' than those for the table style. For example, you cannot change
       ' the color of an individual column.
       Dim grdColStyle1 As New DataGridTextBoxColumn()
       'With grdColStyle1
       '    .HeaderText = ""
       '    .MappingName = "intHotelGroupID"
       '    .Width = 0
       '    .ReadOnly = True
       'End With

       Dim grdColStyle2 As New DataGridTextBoxColumn()
       With grdColStyle2
           .HeaderText = "Hotel Groups"
           .MappingName = "vstrHotelGroupName"
           .Width = Me.grdHotelGroups.Width
       End With

       ' Add the style objects to the table style's collection of 
       ' column styles. Without this the styles do not take effect.        
       grdTableStyle1.GridColumnStyles.AddRange(New DataGridColumnStyle() {grdColStyle2})
       grdHotelGroups.TableStyles.Add(grdTableStyle1)
   End Sub

Edited by divil
Guest Eregnon
Posted

Hmmm...glad to see vb.net promotes such efficient coding. :)

 

Thanks for your help. I'll give this a shot.

  • 8 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...