Combobox Column in Grid bound to generic list?

6 posts, 1 answers
  1. Jonathan Hylton
    Jonathan Hylton avatar
    20 posts
    Member since:
    Sep 2009

    Posted 05 Jan 2011 Link to this post

    Hi There,

    I have a radgrid that I am using that i have created via the editor and is set like this:

    Col0 = Checkbox = (Set to false for each row)
    Col1 = textbox = Filled with info from SQL (not bound in gui, done programatically at load time using sqldatareader)
    Col2 = textbox = Filled with info from SQL (not bound in gui, done programatically at load time using sqldatareader)
    Col3 = combox = filled with generic list - all cells need to have same value example (1,2,3,4,5,6,7,8,9)
    col4 = textbox = left blank user will edit this
    col5 = textbox = left blank user will edit this

    I need to be able to bind the pre created Col3 to a list that has the values already specified. I have tried using radgridview1.columns(3).... however there is no option to for datasource as an option when using an already created combobox for this.

    is there an easy way to achieve this or will i have to create Col0 - Col2 in the designer, fill these columns with values from the SQL database then come back and create the new Col3 in order to bind this to a seperate source for the generic list and then create Col4 - Col5.

    any help would be greatly appreciated as I used to use normal datagrid in VS and this was rather easy to do via the column editor for that, however i would rather use radgrid in my project as all other grids i use are radgrid and i really would like to have the ability to use the row reorder possibility that i get with radgrid that i don't get with the normal gridview of VS.

    thanks!

    Jonathan
  2. Answer
    Richard Slade
    Richard Slade avatar
    3000 posts
    Member since:
    May 2009

    Posted 05 Jan 2011 Link to this post

    Hello,

    The example below shows a simple RadGridView that has the same columns you have mentioned. I then add a datasource for the ComboBoxColumn and populate the grid with rows, simulating getting the items from a database in a reader. You can see that the item that is being brought out for the value of the combo box is the selected item. Please try this in a new project. Its just a RadGridView on a form.
    Hope this helps, but if you need more assistance, just let me know
    Public Class Form1
      
      
        Private Sub Form1_Load(ByVal sender As System.Object,
                               ByVal e As System.EventArgs) Handles MyBase.Load
      
            ' create some columns
            Me.RadGridView1.Columns.Add(New GridViewCheckBoxColumn("MyCheckBox"))
            Me.RadGridView1.Columns.Add(New GridViewTextBoxColumn("MyTextBox1"))
            Me.RadGridView1.Columns.Add(New GridViewTextBoxColumn("MyTextBox2"))
            Me.RadGridView1.Columns.Add(New GridViewComboBoxColumn("MyComboBox"))
            Me.RadGridView1.Columns.Add(New GridViewTextBoxColumn("MyTextBoxUser1"))
            Me.RadGridView1.Columns.Add(New GridViewTextBoxColumn("MyTextBoxUser2"))
      
            ' create a data source for the combo box
            Dim list As New List(Of MyObject)
            list.Add(New MyObject("Item 1", 1))
            list.Add(New MyObject("Item 2", 2))
            list.Add(New MyObject("Item 3", 3))
            list.Add(New MyObject("Item 4", 4))
      
            ' give the column the data source
            CType(Me.RadGridView1.Columns("MyComboBox"), GridViewComboBoxColumn).DataSource = list
            CType(Me.RadGridView1.Columns("MyComboBox"), GridViewComboBoxColumn).DisplayMember = "Name"
            CType(Me.RadGridView1.Columns("MyComboBox"), GridViewComboBoxColumn).ValueMember = "Id"
      
            ' populate the grid
            Me.Populate()
        End Sub
      
        Private Sub Populate()
            'Simulate getting data from SQL via a reader
            For i As Integer = 1 To 4
                Dim rowInfo As GridViewRowInfo = Me.RadGridView1.Rows.AddNew()
                rowInfo.Cells("MyCheckBox").Value = False
                rowInfo.Cells("MyTextBox1").Value = "MyTextBox1 Value " & i.ToString()
                rowInfo.Cells("MyTextBox2").Value = "MyTextBox2 Value " & i.ToString()
                rowInfo.Cells("MyComboBox").Value = i ' The selected value 
                rowInfo.Cells("MyTextBoxUser1").Value = ""
                rowInfo.Cells("MyTextBoxUser2").Value = ""
            Next i
        End Sub
      
    End Class
      
    Public Class MyObject
        Public Sub New(ByVal name As String, ByVal id As Integer)
            Me.Name = name
            Me.Id = id
        End Sub
      
        Public Property Name As String
        Public Property Id As Integer
    End Class

    Best regards,
    Richard
  3. UI for WinForms is Visual Studio 2017 Ready
  4. Jonathan Hylton
    Jonathan Hylton avatar
    20 posts
    Member since:
    Sep 2009

    Posted 05 Jan 2011 Link to this post

    Hi Richard,

    I just had a chance to work on this aspect and this is now working! Many thanks for taking the time to put together this example for me!

    thanks!

    Jonathan
  5. Richard Slade
    Richard Slade avatar
    3000 posts
    Member since:
    May 2009

    Posted 05 Jan 2011 Link to this post

    You're welcome. Glad that you have it all working now.
    All the best
    Richard
  6. Brennan
    Brennan avatar
    39 posts
    Member since:
    Sep 2010

    Posted 06 May 2011 Link to this post

    What if each row should have it's combobox data item's be unique based on the value in a different column of the row? (Contents of each combobox to be different)
  7. Alexander
    Admin
    Alexander avatar
    306 posts

    Posted 11 May 2011 Link to this post

    Hello Brennan,

    Please review this Knowledge Base article which describes how to create RadDropDownListEditor which depends on the value of another cell. Let me know if it helps in your scenario.

    Best regards,
    Alexander
    the Telerik team
    Q1’11 SP1 of RadControls for WinForms is available for download; also available is the Q2'11 Roadmap for Telerik Windows Forms controls.
Back to Top
UI for WinForms is Visual Studio 2017 Ready