Tengo el siguiente problema.
Estoy llenando un combobox atachandole un DataTable en el Datasource, pero
tambien quiero ponerle en el tope un item mas que diga "Selecciones el
grupo" y que sea el primer indice seleccionado para asi yo poder validar que
seleccione un grupo el usuario.
Alguien sabe como hacer esto? por que cuando le hago el
MiCombo.items.insert(0,"Seleccione el grupo") se me genera una excepcion.
Estoy usando VB con VS 2003.
Saludos.
Hola:
Como el control ComboBox lo tienes enlazado a un objeto DataTable, lo que
tienes que hacer es a�adir una nueva fila en la primera posici�n del objeto
DataTable para que se pueda mostrar el nuevo elemento, tal y como muestra el
siguiente ejemplo.
Suponiendo que ya tienes creado el objeto DataTable (dt) con los datos de la
cl�sica tabla de Clientes, en el evento Load del formulario ejecutar�as lo
siguiente:
' Creamos una nueva fila
'
Dim row As DataRow = dt.NewRow
' Asignamos los valores de los campos IdCliente y Nombre
'
row.Item("IdCliente") = -1
row.Item("Nombre") = "Selecciones el grupo"
' A�adimos la fila en la primera posici�n
' del objeto DataTable.
'
dt.Rows.InsertAt(row, 0)
' Aceptamos los cambios en el objeto DataTable.
'
dt.AcceptChanges()
' Configuramos el objeto ComboBox
'
With ComboBox1
.DataSource = dt
.DisplayMember = "Nombre"
.ValueMember = "IdCliente"
End With
De �sta manera, si al consultar el valor de la propiedad SelectedValue del
control ComboBox obtienes un -1, se entiende que el usuario ha seleccionado
el elemento "Selecciones el grupo". Obviamente, se entiende que no va a
existir un identificador de cliente con valor -1.
F�jate que tras a�adir la fila al objeto DataTable efectuamos una llamada al
m�todo AcceptChanges. Esto lo hacemos para que la nueva fila no se a�ada a
la tabla Clientes de la base de datos, si posteriormente efect�as una
llamada al m�todo Update de un adaptador de datos. Al aceptar los cambios,
se entiende que por ahora no existen modificaciones en el objeto DataTable
tras finalizar el evento Load del formulario.
Un saludo
--
Enrique Mart�nez
[MS MVP - VB]
Nota informativa: La informaci�n contenida en este mensaje, as� como el
c�digo fuente incluido en el mismo, se proporciona �COMO EST��, sin
garant�as de ninguna clase, y no otorga derecho alguno. Usted asume
cualquier riesgo al poner en pr�ctica, utilizar o ejecutar lo recomendado o
sugerido en el presente mensaje.
Usa estas dos lineas de codigo...
Dim liItem As ListItem = New ListItem("Seleccione...",0)
DropDownList.Items.Insert(0, liItem)
Y eso es todo, obvio que esto lo haces despues de llenar el combo con
el datasource.
Saludos.
Kristian Garcia Valcarcel
http://www.dev4customer.com
�Y el control ComboBox de Windows Forms tiene una propiedad llamada
"DropDownList" que admita objetos del tipo "ListItem"?