listbox - DisplayMember multiple

03/08/2004 - 17:15 por dps | Informe spam
hola

tengo un listbox que lleno con un dataset que contiene una
tabla con los campos id, nombre, apellidos

el listbox muestra el nombre, lo hago asi:

list1.DataSource = dsetmonitor.Tables(CNTmonitores)
list1.DisplayMember = "nombre"
list1.ValueMember = "id"

pero yo quiero que muestre el nombre y los apellidos,
seria algo así como:

list1.DataSource = dsetmonitor.Tables(CNTmonitores)
list1.DisplayMember = "nombre" & "apellidos"
list1.ValueMember = "id"

este código no da error, pero no funciona

¿alguna idea?

un saludo

Preguntas similare

Leer las respuestas

#1 Eduardo A. Morcillo [MS MVP VB]
03/08/2004 - 18:15 | Informe spam
En DisplayMember solo puedes poner un campo. Lo que debes hacer es tener un
campo en tu tabla que te devuelva los dos campos que mostrar concatenados.
Eso lo puedes hacer en la consulta o en el DataTable. Para hacerlo en el
DataTable solo debes agregar una columna calculada:

dsetmonitor.Tables(CNTmonitores).Columns.Add( _
"NombreCompleto", GetType(String), "Nombre+' '+Apellidos")

list1.DataSource = dsetmonitor.Tables(CNTmonitores)
list1.DisplayMember = "NombreCompleto"
list1.ValueMember = "id"

Eduardo A. Morcillo [MS MVP VB]
http://www.mvps.org/emorcillo
Respuesta Responder a este mensaje
#2 Lázaro
03/08/2004 - 19:21 | Informe spam
También si no quieres tocar el SQL, aunque peor de rendimiento, puedes
crearte una clase con los miembros que tu quieras, lo que haces es incluir
como items al listbox objetos de esa clase, y al listbox le dices que el
displaymember es el miembro que tu quieres que te devuelve los dos valores
incorporados.

Algo así:

'// Llenado de la ListBox
Dim lstItem as MyItem

list.Items.Clear
list1.DisplayMember = "nombrecompleto"
list1.ValueMember = "id"

For each drRow as DataRow in dsetmonitor.Tables(CNTmonitores).Rows
lstItem = new MyItem(drRow)
list.Items.Add(lstItem)
Next drRow

'// Clase
Friend Class MyItem
Private _nombrecompleto as String
Private _id as String ' O dependerá del tipo

Public Sub New(Byval drRow as DataRow)
_nombrecompleto = drRow("nombre").tostring & " " &
drRow("apellidos").tostring
_id = drRow("id").tostring
End Sub

Public Function nombrecompleto() as string
return _nombrecompleto
End Sub

Public Function id() as string
return _id
End Sub
End Class

Lo he hecho sin probarlo, pero vamos, algo así...

Salu2

"dps" wrote in message
news:adec01c4796c$ab7a14b0$
hola

tengo un listbox que lleno con un dataset que contiene una
tabla con los campos id, nombre, apellidos

el listbox muestra el nombre, lo hago asi:

list1.DataSource = dsetmonitor.Tables(CNTmonitores)
list1.DisplayMember = "nombre"
list1.ValueMember = "id"

pero yo quiero que muestre el nombre y los apellidos,
seria algo así como:

list1.DataSource = dsetmonitor.Tables(CNTmonitores)
list1.DisplayMember = "nombre" & "apellidos"
list1.ValueMember = "id"

este código no da error, pero no funciona

¿alguna idea?

un saludo
Respuesta Responder a este mensaje
#3 Anonimo
03/08/2004 - 19:45 | Informe spam
una solución muy elegante

gracias por vuestro tiempo
repito, gracias


También si no quieres tocar el SQL, aunque peor de


rendimiento, puedes
crearte una clase con los miembros que tu quieras, lo que


haces es incluir
como items al listbox objetos de esa clase, y al listbox


le dices que el
displaymember es el miembro que tu quieres que te


devuelve los dos valores
incorporados.

Algo así:

'// Llenado de la ListBox
Dim lstItem as MyItem

list.Items.Clear
list1.DisplayMember = "nombrecompleto"
list1.ValueMember = "id"

For each drRow as DataRow in dsetmonitor.Tables


(CNTmonitores).Rows
lstItem = new MyItem(drRow)
list.Items.Add(lstItem)
Next drRow

'// Clase
Friend Class MyItem
Private _nombrecompleto as String
Private _id as String ' O dependerá del tipo

Public Sub New(Byval drRow as DataRow)
_nombrecompleto = drRow("nombre").tostring & " "


&
drRow("apellidos").tostring
_id = drRow("id").tostring
End Sub

Public Function nombrecompleto() as string
return _nombrecompleto
End Sub

Public Function id() as string
return _id
End Sub
End Class

Lo he hecho sin probarlo, pero vamos, algo así...

Salu2

"dps" wrote in


message
news:adec01c4796c$ab7a14b0$
hola

tengo un listbox que lleno con un dataset que contiene una
tabla con los campos id, nombre, apellidos

el listbox muestra el nombre, lo hago asi:

list1.DataSource = dsetmonitor.Tables(CNTmonitores)
list1.DisplayMember = "nombre"
list1.ValueMember = "id"

pero yo quiero que muestre el nombre y los apellidos,
seria algo así como:

list1.DataSource = dsetmonitor.Tables(CNTmonitores)
list1.DisplayMember = "nombre" & "apellidos"
list1.ValueMember = "id"

este código no da error, pero no funciona

¿alguna idea?

un saludo


.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida