Foros del Web » Programación para mayores de 30 ;) » .NET »

Añadir elemento comboBox

Estas en el tema de Añadir elemento comboBox en el foro de .NET en Foros del Web. Hola!! Tengo un problema con la insercíon de nuevos elementos en un comboBox. Me explico. Tengo un comboBox que se rellena dinamicamente a partir de ...
  #1 (permalink)  
Antiguo 30/07/2007, 02:02
 
Fecha de Ingreso: febrero-2007
Mensajes: 8
Antigüedad: 17 años, 2 meses
Puntos: 0
Añadir elemento comboBox

Hola!!

Tengo un problema con la insercíon de nuevos elementos en un comboBox. Me explico. Tengo un comboBox que se rellena dinamicamente a partir de un tabla de mi base de datos. Hasta ahi todo bien, el problema esque ademas de los elementos de la tabla me gustaría añadir un elemento mas para poder seleccionar un valor nulo en la lista. Lo que quiero conseguir es:

---
catalogo1
catalogo2
catalogo3

El primero de los elementos es el que necesitaría añadir. He probado con combo.Items.Add("---"), pero me da un error, dice que no se pueden modificar los items de un combo si se utiliza la propiedad DataSource. Alguien me podria ayudar?? (Utilizo Visual Studio 2005 y c#)

Gracias de antemano.
  #2 (permalink)  
Antiguo 30/07/2007, 07:04
Avatar de jhonwilliams  
Fecha de Ingreso: marzo-2004
Ubicación: Copacabana - Colombia
Mensajes: 1.484
Antigüedad: 20 años, 1 mes
Puntos: 76
Re: Añadir elemento comboBox

Como el Combo esta asociado a un origen de datos a travez de un DataSource no puedes agregar el item asi como lo estas haciendo.

Asi que hacer lo que quieres tienes dos opciones.

1. Insertar manualmente el item.
combo.Items.Add("---"),
Recorer con un ciclo los items del datasource y por cada item agregar un item en el combo.

Creo que esta es la mas facil. o mas optima.
2. El listado de items creo que los tienes es un DataTable,a este datatable le agregas la fila que necesitas, algo como esto:

ds.Table[0].Rows.Add(new object[XX]{"------"}
XX Es la cantidad de columnas que tiene la tabla. Si el valor a insertar es la primera columna XX tendria valor Cero (0).

Cuando el campo que vas a intertar no es el primero debes agregar los campos anteriores en "" o 0 si es numerico.

Algo como esto:
ds.Table[0].Rows.Add(new object[5]{"","","","","------"}

Una vez agregas el item al datatable le asignas el datasource al combo y listo.

P.D. El item que agregas queda en ultimo lugar, espero esto no sea problema para ti.

Saludos
__________________
Si mi respuesta te ha ayudado, agradezco que me regales unos puntos de Karma XD.

"Una mujer sería encantadora si uno pudiera caer en sus brazos sin caer en sus manos." (Ambrose Bierce)
  #3 (permalink)  
Antiguo 02/08/2007, 05:21
 
Fecha de Ingreso: agosto-2007
Mensajes: 1
Antigüedad: 16 años, 9 meses
Puntos: 0
Busqueda Re: Añadir elemento comboBox

Cuando me he encontrado con ese mismo problema, lo que he hecho ha sido modificar la Select que se utiliza para cargar el combo y añadirle una UNION con una fila que contenga el elemento nulo...
Como no sé si me he expresado con claridad, mejor pongo un ejemplo:

Queremos cargar un combo con los datos de una tabla llamada Mitabla, que tiene 2 campos que nos interesan: Clave y Nombre, el primero,Clave, será el miembro de valor y el segundo, Nombre, el miembro a mostrar en la Combo.

Lo habitual es utilizar esta sentencia:
SELECT Clave, Nombre FROM Mitabla ORDER BY Nombre

Pero si queremos obtener una linea con --- al principio del combo la sentencia select debería ser así:

SELECT Clave, Nombre FROM Mitabla
UNION
SELECT -1 as Clave, '---' as Nombre
ORDER BY Nombre

y "mágicamente" consigues una linea con --- al principio de tu combo!

Espero que te sirva de ayuda,

Heura
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 22:45.