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 Object, ByVal 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