Combo box Select

mercoledì 21 maggio 2008 - 23.44

speedx Profilo | Junior Member

Ciao.
Dopo aver caricato i valori della combo box da un dataset, come faccio a selezionare l'elemento che ha valore 2 da codice?

ho provato con la proprietà selectedvalue = 2 ma non funziona

grazie
//// Marcello C.

freeteo Profilo | Guru

ciao,
se il valore 2 è anche quello visualizzato puoi usare la proprietà "text" direttamente:
comboBox1.Text = "Callahan";

oppure puoi andare tramite indice di quella stringa:
comboBox1.SelectedIndex = comboBox1.FindString("Callahan");

però il tuo codice che usa il "SelectedValue" va bene, controlla però che campo è stato impostato come "ValueMember" perchè i valori di quel campo discriminano la proprietà "SelectedValue", dato che la combo ha la funzione di visualizzare una cosa ( tipicamente una descrizione ) e darti un valore che può essere un campo differente ( tipicamente un ID).
In quel caso, allora il tuo "selectedValue" deve essere un valore di quel campo, e non quello che vedi a video...



ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

speedx Profilo | Junior Member

Non mi sono ben spiegato...
dunque la combo viene popolata tramite stored procedure su sql server, da cui recupero una descrizione che viene messo nella sezione testo della combo, mentre il valore che a me serve utilizzare è l' id della descrizione. ad esempio 2.

Siccome dopo avere popolato la combo, ho un'altra procedure che mi passa l'id da selezionare in quel momento volevo sapere come far selezionare la descrizione corretta nella combo box partendo dal valore e non da un indice.


//// Marcello C.

assiolle Profilo | Junior Member

Intendi dal valore del "ValueMember"?
Alessio
http://blogs.dotnethell.it/alessiop

speedx Profilo | Junior Member

si proprio value

//// Marcello C.

freeteo Profilo | Guru

ciao,
se vuoi fare questo, devi dare 2 proprietà differenti come ValueMember, e DisplayMember della combo, rispettivamente "ID" e "Descrizione".

Per fare questo, però devi passare una datatable (o meglio ancora una classe) che abbia queste 2 colonne (o queste 2 proprietà se usi le classi) come DataSource della combo e allora il tuo codice "SelectedValue=2" funziona, perchè seleziona il valore, si posiziona a quell'indice, e ne visualizza la descrizione (appunto DispalyMember).

Se invece passi solo la lista delle descrizioni alla combo non funzionerà mai.
Verifica quindi che al ritorno dalla stored tu abbia queste 2 colonne, e quindi passando come datasource la DataTable risultante, hai anche la possibilità di settare i 2 membri in maniera corretta.

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
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