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

Rellenar combo

Estas en el tema de Rellenar combo en el foro de .NET en Foros del Web. Hola buenas, quiero llenar un combobox con los meses del año, de tal forma que me quede en la opción value el número del mes ...
  #1 (permalink)  
Antiguo 07/06/2005, 03:55
 
Fecha de Ingreso: mayo-2003
Mensajes: 58
Antigüedad: 21 años, 8 meses
Puntos: 0
Rellenar combo

Hola buenas,

quiero llenar un combobox con los meses del año, de tal forma que me quede en la opción value el número del mes y en el texto, que me quede el nombre del mes.

He hecho varias pruebas pero no consiguo hacerlo.

Gracias por adelantado.
  #2 (permalink)  
Antiguo 07/06/2005, 07:25
Avatar de freegirl
Colaborador
 
Fecha de Ingreso: octubre-2003
Ubicación: Catalonia
Mensajes: 4.334
Antigüedad: 21 años, 4 meses
Puntos: 156
hola,

te explico lo que hago yo con los combos de los meses, y luego para saber que número de mes le correspnede, no hace falta que le insertes el value:


Relleno el combo en orden con todos los meses:

combo1.items.add ("enero")
combo1.items.add ("febrero")
.....
combo1.items.add ("diciembre")


Luego para saber que nº de mes corresponde al item seleccionado:

numeroMes= cmb.selectindex +1

como estan insertados ordenados los meses, y el index empieza por 0, sólo le debes sumar 1 al index y te da el nº del mes.

Por ejemplo,

si se seleccionas Febrero, que está en la posición 1, pues le sumas 1, y te da resultado 2, que es el nº de mes correspondiente.

Espero que te sirva.

saludos!
  #3 (permalink)  
Antiguo 07/06/2005, 08:13
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 23 años
Puntos: 50
Puedes crear un ciclo y obtener el nombre del mes.

Sería:

Cita:
For i As Integer = 1 To 12
monthsDDL.Items.Add(New ListItem(MonthName(i), i))
Next
COn ello guardas en el value el numero de mes y muestras en text el nombre del mes.

Ahora que si quieres mostrar los nombres en un idioma en específico puedes hacer esto:


Cita:
System.Threading.Thread.CurrentThread.CurrentCultu re = New System.Globalization.CultureInfo("es-MX")
For i As Integer = 1 To 12
monthsDDL.Items.Add(New ListItem(MonthName(i), i))
Next
Donde es-MX es para méxico, pero tambien puede usarlo para que los muestre en ingles, frances, etc.. todo depende de la cultura que le indiques.

Espero que sea lo que buscas.

Saludos
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #4 (permalink)  
Antiguo 07/06/2005, 08:14
 
Fecha de Ingreso: mayo-2003
Mensajes: 58
Antigüedad: 21 años, 8 meses
Puntos: 0
Ante todo muchas gracias por la respuesta, es una buena manera de solucionar el problema de los meses. Lo que pasa es que no solucionamos la manera de crear parejas de valores para añadirlos al combo.

He encontrado otra manera de hacerlo, que es crear una tabla con dos columnas con los pares id,mes para después pasarlo todo al DataSouce del combo:

Dim tMesos As New DataTable
tMesos.Columns.Add("idMes")
tMesos.Columns.Add("nomMes")

For i = 1 To 12
Dim reg As DataRow = tMesos.NewRow
reg("idMes") = i
reg("nomMes") = MonthName(i)
tMesos.Rows.Add(reg)
Next

mesos.DataSource = tMesos
mesos.DataValueField = "idMes"
mesos.DataTextField = "nomMes"
mesos.DataBind()

Creo que es una buena manera para pasar pares de valores al combo.

Gracias!
  #5 (permalink)  
Antiguo 07/06/2005, 08:15
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 23 años
Puntos: 50
Si leiste mi post nicket ?

Ya que no es necesario crear un datatable..
  #6 (permalink)  
Antiguo 07/06/2005, 08:20
 
Fecha de Ingreso: mayo-2003
Mensajes: 58
Antigüedad: 21 años, 8 meses
Puntos: 0
sí lo hice,... justo después de escribir el mio...

una muy buena manera de hacerlo... lo intentaré...

muchas gracias!
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




La zona horaria es GMT -6. Ahora son las 12:31.