Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 2.0 / 3.5 / 4.0
Dropdownlist
martedì 27 novembre 2007 - 10.54
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Anubis
Profilo
| Junior Member
60
messaggi | Data Invio:
mar 27 nov 2007 - 10:54
ciao a tutti...
ho questo tipo di problema:
devo far selezionare a una dropdownlist il valore ke recupero da un record...
ho già effettuato le conversioni necessarie, il problema lo riscontro nell'assegnazione del valore alla dropdownlist.
come posso fare???
pozzoli.samuele
Profilo
| Senior Member
219
messaggi | Data Invio:
mar 27 nov 2007 - 10:55
Che tipo di problema riscontri?
Che valore devi scrivere/selezionare?
Che tipo di valore/testo hai nella ddl?
I valori, sono text o value?
Anubis
Profilo
| Junior Member
60
messaggi | Data Invio:
mar 27 nov 2007 - 10:59
questo è il codice...
object cantiere = RecordVedi.GetValue(2);
string ItemCantiere = cantiere.ToString();
DropDownListCantiere.Items[DropDownListCantiere.Items.Count - 1].Value = ItemCantiere;
questo è l'errore ke mi da...
Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
pozzoli.samuele
Profilo
| Senior Member
219
messaggi | Data Invio:
mar 27 nov 2007 - 11:14
>questo è il codice...
Grazie! ;)
>
>object cantiere = RecordVedi.GetValue(2);
>string ItemCantiere = cantiere.ToString();
>DropDownListCantiere.Items[DropDownListCantiere.Items.Count -
>1].Value = ItemCantiere;
Ehm... Aspetta, aspetta! In questo modo, tu... non selezioni un elemento, ma gli cambi il valore! (Nemmeno il testo!)
>
>questo è l'errore ke mi da...
>
>Index was out of range. Must be non-negative and less than the
>size of the collection.
>Parameter name: index
Ed è strano! Semmai io avrei ammesso un errore tipo che è di sola lettura. Bhè, ma per fortuna non è di questo errore che ci dobbiamo preoccupare...
Per selezionare un elemento, dovrai usare una cosa molto simile a:
object cantiere = RecordVedi.GetValue(2);
string ItemCantiere = cantiere.ToString();
DropDownListCantiere.SelectedValue = ItemCantiere;
Se il RecordVedi.GetValue(2) contiene il value dell'elemento! Se invece contiene il text, dovrai usare:
object cantiere = RecordVedi.GetValue(2);
string ItemCantiere = cantiere.ToString();
DropDownListCantiere.SelectedText = ItemCantiere;
Se sei così fortunato da avere l'indice dell'elemento... potresti usare DropDownList.SelectedIndex...
Ma secondo me è una cosa talmente ristretta... Tipo... se sei sicuro e somiglia a dropdownlist, con vero / falso, e vero è sempre sopra, allora fai selectedindex=0 se vero, altrimenti selectedindex=1...
Altrimenti, secondo me è scomodo! Avendo poi selected value e selectedtext... Ma non divaghiamo...
Buon lavoro!
Anubis
Profilo
| Junior Member
60
messaggi | Data Invio:
mar 27 nov 2007 - 11:38
usando DropDownListCantiere.SelectedValue = ItemCantiere; non mi da errori, xò l'elemento selezionato della dropdownlist rimane cmq vuoto (dato ke io gli inserisco " " nel momento in cui la popolo)
quindi in pratica è come se non gli assegnasse niente
pozzoli.samuele
Profilo
| Senior Member
219
messaggi | Data Invio:
mar 27 nov 2007 - 11:43
Ma devi selezionare o inserire?
Di nuovo: il testo o il value?
Poi... perchè inserisci " " e non un valore? Cerca di chiarire un pochino meglio... please
Prova con il selectedText... Che secondo me stai facendo confuzione tra text e value! Sono due cose diverse!
Text è il testo visualizzato, Value è il valore associato, che non viene visualizzato!
Quando iserisci gli elementi, come li inserisci?
Anubis
Profilo
| Junior Member
60
messaggi | Data Invio:
mar 27 nov 2007 - 12:05
si scusa io devo solo visualizzare...mi serve il text non il value...
per farlo utilizzo questo codice:
DropDownListCantiere.SelectedItem.Text = ItemCantiere;
ma mi da questo errore...
Object reference not set to an instance of an object.
(nell'elenco delle proprietà non mi appare SelectedText, mi dice ke non esiste 1 definizione x qst proprietà)
pozzoli.samuele
Profilo
| Senior Member
219
messaggi | Data Invio:
mar 27 nov 2007 - 12:13
Giusto! Scusa, ti ho detto io una cavolata!
Quando inserisci, metti un id nel value! Può essere anche lo stesso testo!
Altrimenti, puoi usare
dropdownlistcantieri.text = cantiere...
Scusa, avevo messo un select di troppo. Sai, facendo a memoria...
Però, così, cambi solo il testo della dropdownlist! Abituati invece ad usare il value e il selecteditem.text!
Funziona decisamente meglio...
Quindi. Riassumendo: In inserimento, metti la stessa cosa che metti nel text, se non hai concetti migliori, quali idcantiere o simili. Infine, selezioni l'oggetto con selectedvalue!
Ricorda che il value deovrebbe essere univoco! Se per sbaglio hai dentro due cantieri con lo stesso "nome" come fa a capire, poverello, quale dei due deve selezionare?
Il principio è quello...
Fai prove e tienici aggiornati!
Vado a casa a mangiare, ciao tutti!
Anubis
Profilo
| Junior Member
60
messaggi | Data Invio:
mar 27 nov 2007 - 15:09
sto provando con:
DropDownListCantiere.SelectedItem.Text = ItemCantiere;
xò mi da nullo SelectedItem.Text
la dropdownlist esiste...
com'è possibile???
pozzoli.samuele
Profilo
| Senior Member
219
messaggi | Data Invio:
mar 27 nov 2007 - 17:41
Ehm... Provare a fare come ti ho detto, no, eh? Non ti piace proprio, vero?
Stai cercando di settare il testo di un elemento che non esiste!
Cioè dell'elemento selezionato.
Fai una cosa bella. Rileggiti il mio post di prima e SEGIULO!
Anubis
Profilo
| Junior Member
60
messaggi | Data Invio:
mer 28 nov 2007 - 08:58
si scusami...io continuavo a provare con l'elemento selezionato, quando invece dovevo semplicemente cambiare il teso visualizzato della ddl.
Cmq ora funziona tt correettamente, grazie x l'aiuto
Torna su
Stanze Forum
Elenco Threads
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 !