29 messaggi dal 29 aprile 2002
Ciao.

Ho una dropdownlist popolata da un centinaio di valori.

Come DataValueField utilizzo un campo del DB e come DataTextField un insieme di campi concatenati.
Il DataValueField NON E' una chiave.

Mi spiego meglio con un esempio (i trattini servono per indentare i valori in questo messaggio):

DataValueField --- DataTextField
148-148 -------------- a § b § c § d
148-148 -------------- h § j § k § l
150-150 -------------- e § s § t § z
150-150 -------------- x § y § w § v

Qual è il problema:
Seleziono il primo valore nella DDL ed estrapolo il SelectedItem in questo modo string words = myDDL.SelectedItem.ToString();

Va tutto bene ed ottengo "a § b § c § d".
Se seleziono il secondo valore per ottenere "h § j § k § l" mi viene restituito comunque il primo valore.

Se seleziono il terzo valore ottengo "e § s § t § z".
Se seleziono il quarto ottengo sempre "e § s § t § z".

Il SelectedIndex cambia SOLO se cambia il valore del DataValueField...
Proprio non ci arrivo.

Come faccio ad ottenere sempre e comunque il valore del Text selezionato?

Dove sbaglio?

Grazie per eventuali risposte!
Ciao. :-)
843 messaggi dal 08 aprile 2009
Probabilmente è perchè nel Page_load ricarichi anche durante il PostBack la dropdownlist.
Prova a vedere se nel page_load l'hai?
if (!Page.IsPostBack)
{
caricadropdownlist();
}
Perchè il Value corrisponde al valore postato e quindi deve essere univoco, altrimenti la DDL non ha alcun modo per capire quale dei due valorizzare e per default seleziona il primo.

Ciao,
m.
29 messaggi dal 29 aprile 2002
Ciao.

Grazie a laurar181 ma stavolta ha ragione Cradle...

Controllo il PostBack quindi deve essere per forza come ha detto Cradle.

Purtroppo il DB è stato creato una decina di anni fa da incompetenti e guardacaso sono diventati dei capiprogetto... Ora devo trovare una soluzione io e poi mi sbatteranno in cassa integrazione... Incredibile...

Comunque grazie.
Ciao.
29 messaggi dal 29 aprile 2002
Non so se può farvi piacere saperlo ma ho risolto.
Ho utilizzato una query che numera i record ed ho inserito proprio quel numero come primo campo della DDL. Ho usato ROW_NUMBER() OVER.

Ora funziona.

Grazie a Cradle.
E cmq grazie anche a laurar181.

Grazie ancora.
Ciao
Modificato da asab67 il 23 giugno 2010 14.31 -
843 messaggi dal 08 aprile 2009
Mi dispiace asab67 per quello che ti sta succedendo...anche io spesso e volentieri ho avuto a che fare con degli incompetenti che ricoprivano un ruolo molto più alto del mio. Il lavoro lo facevo io e loro ne prendevano tutti i meriti anche economici.
In questo mondo purtroppo non c'è giustizia!

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.