Telerik - Accessing all the columns in a GridViewMultiColumnCombo in a Grid

Accessing all the columns in a GridViewMultiColumnCombo in a Grid. That's a mouthful, right?

The issue is this - I have a grid, and in the grid I have a MultiColumnCombo. Once the user selects an item in the grid I need to access the other columns in the MultiColumnCombo and use that data to populate other columns in the grid.

The code sample below gives a simple example of how to do just that.

Imports Telerik.WinControls.UI
 
Public Class Form1
    Public Sub New()
 
        ' This call is required by the designer.
        InitializeComponent()
 
        ' Add any initialization after the InitializeComponent() call.
        Me.RadGridView1.AutoSizeColumnsMode = GridViewAutoSizeColumnsMode.Fill
 
        Dim dt As New DataTable()
 
        Dim dc As New DataColumn()
        dc.ColumnName = "Item Number"
        dt.Columns.Add(dc)
 
        dc = New DataColumn()
        dc.ColumnName = "Unit Of Measure"
        dt.Columns.Add(dc)
 
        Me.RadGridView1.DataSource = dt
 
        For i As Integer = 0 To 19
            Dim dr As DataRow = dt.NewRow()
            dr(0) = "Item Number " & i.ToString()
            dr(1) = "Unit Of Measure " & i.ToString()
            dt.Rows.Add(dr)
        Next i
 
        Dim dt2 As New DataTable()
 
        dc = New DataColumn()
        dc.ColumnName = "Item Number"
        dt2.Columns.Add(dc)
 
        dc = New DataColumn()
        dc.ColumnName = "Item Desc"
        dt2.Columns.Add(dc)
 
        dc = New DataColumn()
        dc.ColumnName = "Unit Of Measure"
        dt2.Columns.Add(dc)
 
        For i As Integer = 0 To 99
            Dim dr As DataRow = dt2.NewRow()
            dr(0) = "Item Number " & i.ToString()
            dr(1) = "Item Desc " & i.ToString()
            dr(2) = "Unit Of Measure " & i.ToString()
            dt2.Rows.Add(dr)
        Next i
 
        Dim col As New GridViewMultiComboBoxColumn()
        col.FieldName = "Item Number"
        col.DisplayMember = "Item Number"
        col.ValueMember = "Item Number"
        col.DataSource = dt2
        Me.RadGridView1.Columns.Add(col)
 
        Me.RadGridView1.Columns(0).IsVisible = False
    End Sub
 
    Private Sub RadGridView1_CellEditorInitialized(sender As Object, e As Telerik.WinControls.UI.GridViewCellEventArgs) Handles RadGridView1.CellEditorInitialized
        Dim mcElement As RadMultiColumnComboBoxElement = TryCast(e.ActiveEditor, RadMultiColumnComboBoxElement)
        If mcElement IsNot Nothing Then
            ' (Un)Subscribe to the SelectedIndexChanged
            RemoveHandler mcElement.SelectedIndexChanged, AddressOf mcElement_SelectedIndexChanged
            AddHandler mcElement.SelectedIndexChanged, AddressOf mcElement_SelectedIndexChanged
            mcElement.AutoSizeDropDownToBestFit = True
        End If
    End Sub
 
    Private Sub mcElement_SelectedIndexChanged(ByVal sender As ObjectByVal e As EventArgs)
        Dim mcElement As RadMultiColumnComboBoxElement = TryCast(sender, RadMultiColumnComboBoxElement)
        Dim row As GridViewDataRowInfo = CType(mcElement.SelectedItem, GridViewDataRowInfo)
        ' If we are in the new row of RadGridView, have selected item, then get the 
        ' underlying data item of this item and extract the necessary data from it
        If row IsNot Nothing Then
            If TypeOf Me.radGridView1.CurrentRow Is GridViewNewRowInfo Then
                Dim rowView As DataRowView = CType(row.DataBoundItem, DataRowView)
                Dim dRow As DataRow = rowView.Row
                Dim uom As String = dRow("Unit Of Measure").ToString()
                Me.radGridView1.CurrentRow.Cells("Unit Of Measure").Value = uom
            End If
        End If
    End Sub
End Class

RealWorldCode gives developers practical, real‑world solutions with clean, working code — no fluff, no theory, just answers.
Links
Home
Knowledge Areas
Sitemap
Contact
Et cetera
Privacy Policy
Terms and Conditions
Cookie Preferences