Duda con combo box en Visual Basic

RaymaN

Buenas, sabéis si hay algún método para utilizar un combo box en Visual Basic como si fuera un select de HTML? Es decir, que los items puedan tener valores distintos al texto que contengan, no se si me he explicado bien. He estado buscando un rato pero no he encontrado nada, y hacerlo con arrays es un poco coñazo y bastante cutre xD

B

No sé si existe alguna otra forma pero la que me enseñaron fueron con tablas.

En las propiedades del combo...
Datasource="Dataset1.Tabla1"=> Eliges el data set y la tabla a mostrar
DisplayMember="Nombre" => Campo que se visualiza en el combo
ValueMember="ID" => Valor que hay por detrás al que se muestra en el combo.

SaReDnAL

Esto es para ASP.NET, que no se si estas con forms o con web.

Para forms sería como pone arriba el compi, utilizando

DisplayMember y valuemember.

Para ASP.NET:

Cargas el combo con una tabla de dos columnas...

Ejemplo:

idprovincia nombreprovincia

28 Madrid
200 Honolulu
500 Mordor

Asignas la propiedas del combo

Datatextfield a nombreprovincia
Datavaluefield a idprovincia

El combo mostrara los nombres, pero cuando seleccionen por ejemplo "MADRID"

Si recuperar combobox.selectedvalue (creo que era asi, lo estoy intentando recordar

Obtendras el valor 28, aunque no se muestra en el combo.

Te refieres a esto?

Si te refieres a esto te puedo pegar algo de codigo que tengo hecho

Saludos

RaymaN

Gracias #2 y #3, lo he hecho así. Por último, hay alguna forma de invertir el orden del combobox? Puto Visual Basic xD

SaReDnAL

Estas utizando asp o forms?

Estas utilizando un datatable o dataset para cargar el combo?

Yo haria lo siguiente (Teniendo el dataset original "ds")
Creamos un dataset para invertir al que llamamos dsinvert

y el codigo sería el siguiente:

Dim dsinvert As New DataSet
dsinvert = ds.Clone

    For i = ds.Tables(0).Rows.Count - 1 To 0 Step -1
        Dim dr As DataRow
        dr = dsinvert.Tables(0).NewRow
        dr = ds.Tables(0).Rows(i)
        dsinvert.Tables(0).ImportRow(dr)
    Next
RaymaN

Utilizo forms, lo haré como dices aunque buscaba algo más sencillo tipo Reverse, pero bueno VB es así xD

SaReDnAL

No se si existe alguna funcion en el framework que te haga un reverse en los datos del dataset. Yo no la cononzco.

De todos modos las lineas de arriba son super faciles

Tienes el dataset "ds" con tus datos originales

El dsinvert se crea clonandose a partir de ds pero sin datos, solo estructura y columnas

Una vez tienes ambos, recorres el ds original pero al reves, en vez de

i=0 hasta numeroderegistros

es de numeroderegistros hasta 0

Entonces, lo que hace es ir metiendo desde el final hasta el principio
las filas (rows) en el nuevo dataset quedándo así en orden inverso.

Usuarios habituales