2010-08-16 11 views
5

Ho 3 caselle a discesa (casella combinata) in ambiente asp.net. Sono tutti opzionali, quindi se un utente ha selezionato qualcosa, sto aggiornando il database, se non è stato selezionato nulla, sto ancora aggiornando il database con valori nulli.controllare se è stato selezionato un valore dal menu a discesa in C#

Ho provato a fare questo:

int? CountryId = Convert.ToInt32(ddCountries.SelectedItem.Value); 

Speravo che nullo se non è selezionato sarà inserito nel CountryId, ma, invece il suo un'eccezione.

Ho provato a cercare ddCountries.isSelected (o qualcosa del genere), ma ovviamente doesnt esistere ..

così come faccio a sapere se una selezione è stata fatta su una casella a discesa? - attraverso il codice C#.

Molte grazie

ps: ho un pensiero - ho messo ogni casella a discesa in un blocco try ... catch e se un'eccezione si pone, impostare le variabili a null manualmente .. ma non sono sicuro questo è il migliore modo di farlo!

+0

io non voglio avere richiesto validatore campo perché la selezione è facoltativo .... grazie! – iamserious

risposta

8

siete alla ricerca di

if(ddCountries.SelectedIndex > -1) 

Non si dovrebbe mai utilizzare le eccezioni per controllare il flusso del programma.

+0

Ciao, ho usato un mix della tua risposta e quella sotto (da LukasW con l'operatore ternario) e il suo funzionamento ora. Inoltre, grazie per le informazioni sull'utilizzo dell'eccezione per controllare il flusso del programma. – iamserious

+1

+1 per "Non si dovrebbero mai usare eccezioni per controllare il flusso del programma". Questo sembra non essere ripetuto abbastanza spesso per alcuni. –

0

Se ComboBoxChannel.SelectedValue.ToString.ToLower = "system.data.datarowview" Allora Exit Sub

Problemi correlati