ListBox riempirle da codice con value e text

martedì 18 dicembre 2007 - 22.03

riminese77 Profilo | Junior Member

Ciao a tutti, ho questo problema, vorrei implementare una listbox in questo modo:

LP.Items.Add(Lettore("Nomecliente").ToString)
LP.SelectedItem.Value = Lettore("Idcliente").ToString

in modo tale che quando carica i dati a vista (lo fa) mi da il nome del cliente, mentre quando lo selezione
ValoreKey =LP.SelectedItem.Value.ToString
vorrei avere il valore dell'id... ma a parte che mi da errore anche cerco di caricare la Kay (value).
Esiste il modo di riempire i campi (del testo che appare, key da ricavare) senza dover passare direttamente da DB?

Un'altra domanda, eventualmente se una listbox è popolata da un DB, è possibile "scollegarlo" e rimanere i dati nella lisbox in modo da poterli riprendere a runtime?
Ciao e grazie!

alx_81 Profilo | Guru

>Ciao a tutti,
Ciao!

>ho questo problema, vorrei implementare una listbox
>in questo modo:
>
>LP.Items.Add(Lettore("Nomecliente").ToString)
>LP.SelectedItem.Value = Lettore("Idcliente").ToString
>
>in modo tale che quando carica i dati a vista (lo fa) mi da il
>nome del cliente, mentre quando lo selezione
>ValoreKey =LP.SelectedItem.Value.ToString
>vorrei avere il valore dell'id... ma a parte che mi da errore
>anche cerco di caricare la Kay (value).
Proprio non ho capito.. perdonami, puoi spiegarti meglio?

>Esiste il modo di riempire i campi (del testo che appare, key
>da ricavare) senza dover passare direttamente da DB?
sì, segui questo esempio:

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load Dim LB As New ListBox() LB.Items.Add(New ListItem("Prova1", "1")) LB.Items.Add(New ListItem("Prova2", "2")) LB.Items.Add(New ListItem("Prova3", "3")) LB.Items.Add(New ListItem("Prova4", "4")) LB.Items.Add(New ListItem("Prova5", "5")) Me.Form.Controls.Add(LB) End Sub

Come puoi vedere, alla Load della pagina creo la listbox senza passare da DB. Utilizzo il costruttore della classe ListItem(text, value) in modo da ottenere già la lista degli items formati da valore/testo. Per selezionarne uno in particolare da codice fai così:

LB.SelectedValue = "3"

>
>Un'altra domanda, eventualmente se una listbox è popolata da
>un DB, è possibile "scollegarlo" e rimanere i dati nella lisbox
>in modo da poterli riprendere a runtime?
Devi utilizzare ADO.Net in modalità disconnessa. Quindi DataTable/DataSet ed adapter. Ti allego un esempio con una connessione a SQL Server:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

La tabella utenti è inventata, dovrai utilizzare un comando utile alla tua base dati e dovrai cambiare di conseguenza la DataTextField e la DataValueVield.
Fai attenzione, per quanto possibile non usare statement SQL nel comando. Cerca di utilizzare Stored procedure (se il db te lo consente) oppure query parametriche se hai la necessità di passare parametri. Questo è solo a titolo di esempio.
E ricorda che il Datatable, se scrivi un codice simile, è "vivo" ed utilizzabile solo nell'evento che stai gestendo.

>Ciao e grazie!
di nulla!
Alx81 =)

http://blogs.dotnethell.it/suxstellino

riminese77 Profilo | Junior Member

Mi piace questo forum siete diretti e precisi.. in più veloci!!!
Grazie, gli esempi che mi hai dato funzionano alla grande!
... alla prox!
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5