To reproduce:
1.Add two RadDropDownListControls
2.Use the following code:
Private _doDisable As Boolean = False
Sub New()
InitializeComponent()
Dim parentDataTable As New DataTable
parentDataTable.Columns.Add("P1", GetType(Decimal))
parentDataTable.Columns.Add("P2", GetType(String))
parentDataTable.Rows.Add({1, "ABC"})
parentDataTable.Rows.Add({1, "ABCD"})
dd1.DataSource = parentDataTable
dd1.ValueMember = "P1"
dd1.DisplayMember = "P2"
dd1.SelectedIndex = -1
dd2.SelectedIndex = -1
End Sub
Private Sub dd1_SelectedIndexChanged(sender As Object, e As UI.Data.PositionChangedEventArgs) _
Handles dd1.SelectedIndexChanged
Dim childDataTable As New DataTable
childDataTable.Columns.Add("P1", GetType(Decimal))
childDataTable.Columns.Add("P2", GetType(String))
If dd1.SelectedIndex = 0 Then
For x = 1 To 2
childDataTable.Rows.Add({x, x.ToString})
Next x
End If
If dd1.SelectedIndex = 1 Then
For x = 3 To 4
childDataTable.Rows.Add({x, x.ToString})
Next x
End If
dd2.DataSource = childDataTable
dd2.ValueMember = "P1"
dd2.DisplayMember = "P2"
End Sub
3.Follow the steps:
Dropdown 1 contains two entries "ABC" & "ABCD"
Dropdown 2 is populated conditionally on selected index change of dropdown 1.
For "ABC" dropdown 2 contains 1 and 2, and for "ABCD" contains 3 and 4.
1 - In dropdown 1, type ABC and tab out
2 - In dropdown 2, select any value
3 - Now click the arrow to "dropdown" dropdown 1 again, but click the arrow again to cancel the dropdown, cursor is at the start of the ABC. Now click in the text area so cursor moves to the end of the text and type D. There doesn't appear to be any auto complete operation performed even though this should auto complete to entry 2.
4 - Tab out.
Dropdown 2 is not updated as the selected index change event is not fired for dropdown 1 as ABCD wasn't matched against row 2.
5 - Now "dropdown" dropdown 1 again, and the change event now fires late and correctly updates the second dropdown.