I am trying to create a combo box that would display data from a dataset, and also a 'Please Select' as the first item. I have written the following code which derives from a combo box and it works fine in visual studio 2003 but in 2008 would not display the comboboxtext (which is 'Please select'). any one has any ideas what i have done wrong?
Expand|Select|Wrap|Line Numbers
- Public Class DoubleDataSourceCombo
- Inherits ComboBox
- Dim myDataTable As DataTable
- Public comboboxText As String
- Protected Overrides Sub OnDataSourceChanged(ByVal e As System.EventArgs)
- MyBase.OnDataSourceChanged(e)
- Static blnDataSourceSet As Boolean = False
- If blnDataSourceSet = True Then
- blnDataSourceSet = False
- Return
- End If
- myDataTable = New DataTable
- If DisplayMember <> "" Then myDataTable.Columns.Add(Me.DisplayMember)
- If ValueMember <> "" Then myDataTable.Columns.Add(Me.ValueMember)
- Dim row As DataRow = myDataTable.NewRow
- If DisplayMember <> "" Then
- row.Item(Me.DisplayMember) = comboboxText
- End If
- If ValueMember <> "" Then
- row.Item(Me.ValueMember) = DBNull.Value
- 'row.Item(Me.ValueMember) = -1
- End If
- myDataTable.Rows.Add(row)
- For Each o As Object In Me.DataSource
- row = myDataTable.NewRow
- If DisplayMember <> "" Then
- row.Item(Me.DisplayMember) = o(Me.DisplayMember)
- End If
- If ValueMember <> "" Then
- row.Item(Me.ValueMember) = o(Me.ValueMember)
- End If
- myDataTable.Rows.Add(row)
- Next
- Dim ar As New ArrayList
- For Each oo As Object In myDataTable.DefaultView
- ar.Add(oo)
- Next
- blnDataSourceSet = True
- Me.DataSource = myDataTable.DefaultView
- End Sub
- End Class
Expand|Select|Wrap|Line Numbers
- dim cbo as new doubledatasourcecombo
- cbo.comboboxtext="Please Select"
- cbo.displaymember="EmployeeName"
- cbo.valuemember="PersonnelID"
- cbo.datasource=dr 'which is a datarow array
thanks