59 messaggi dal 07 novembre 2013
Ho notato un bug(?) sulle dropdownlist. Ecco un esempio pratico:
<asp:DropDownList ID="DDnomi" runat="server" Font-Bold="False" 
style="position: relative; top: -8px" AutoPostBack="False">

<asp:ListItem>FUMETTI</asp:ListItem> <!--Titolo categoria(reso inselezionabile da code behind)-->
<asp:ListItem></asp:ListItem><!--Spazio vuoto(reso inselezionabile da code behind)-->
<asp:ListItem>pippo</asp:ListItem>
<asp:ListItem>paperino</asp:ListItem>
<asp:ListItem>minnie</asp:ListItem>

<asp:ListItem>UTENTI</asp:ListItem><!--Titolo categoria(reso inselezionabile da code behind)-->
<asp:ListItem></asp:ListItem><!--Spazio vuoto(reso inselezionabile da code behind)-->
<asp:ListItem>mario</asp:ListItem>
<asp:ListItem>fabio</asp:ListItem>
<asp:ListItem>pippo</asp:ListItem>
<asp:ListItem>minnie</asp:ListItem>
</asp:DropDownList> 


Si vede chiaramente che abbiamo alcuni items con testo identico. Bene dico io...tanto i loro index sono univoci. Invece NO. Quando da code behind leggo l'index dell'item selezionato, quelli con lo stesso testo mi ritornano lo stesso index!! Provare per credere. A mio avviso e' inaccettabile. C'e' un modo per risolvere il problema senza cambiare ovviamente i testi degli items? Perche' VS2010 si comporta in questo modo? Se guardo gli elementi della dropdown da "progettazione" ogni item ha un index diverso!
Modificato da uruse1980 il 08 maggio 2014 02.17 -
354 messaggi dal 13 marzo 2013
potresti inserire un value e mettere ad ogni item un value diverso. Per quanto riguarda il text, invece, puoi mettere quello che vuoi.
59 messaggi dal 07 novembre 2013
Hai ragione, la stachezza mi aveva nascosto l'ovvio! Grazie 1000! Comunque per curiosita'.... e' un bug? A me non sembra un comportamento normale! Ogni item ha il suo index, perche' due items con lo stesso testo non ritornano index diversi ma solo e sempre l'index minore?
354 messaggi dal 13 marzo 2013
Sinceramente non saprei, non li ho mai usati così ma sempre con il value..potrebbe anche essere un bug..
3.939 messaggi dal 28 gennaio 2003
Credo che siano nozioni elementari di html

se, per esempio, per semplificare, ho solo due elementi, il motore aspx lo traduce con questo html
<select name="DDnomi" id="DDnomi">
  <option value="pippo">pippo</option>
  <option value="pippo">pippo</option>
</select>



come vedi aggiunge il name (assolutamente necessario, altrimenti non invia niente al submit) ed aggiunge il value ad ogni elemento.

Quando fai il submit, aspx riceve la copia variabile&valore, ossia:

variabile=DDnomi
valore=pippo


se tu ricevessi solo questa informazione, sapresti risalire a l'indice del "pippo" ricevuto?
59 messaggi dal 07 novembre 2013
Si, ma siccome parliamo di un controllo lato server, e siccome quando vai (da progettazione) sulla dropdownlist e clicchi su "modifica elementi" vedi tranquillamente l'index DIVERSO di ogni elemento anche se due hanno lo stesso nome, capisci che il comportamento non e' logico. Che senso avrebbero allora gli index e il predicato "dropodownlist.selectedindex"?
Modificato da uruse1980 il 08 maggio 2014 19.43 -
3.939 messaggi dal 28 gennaio 2003
uruse1980 ha scritto:
Si, ma siccome parliamo di un controllo lato server, e siccome quando vai (da progettazione) sulla dropdownlist e clicchi su "modifica elementi" vedi tranquillamente l'index DIVERSO di ogni elemento anche se due hanno lo stesso nome, capisci che il comportamento non e' logico. Che senso avrebbero allora gli index?
Modificato da uruse1980 il 08 maggio 2014 19.36 -


Io la vedo così, ma posso sbagliare.
Non ha nessuna importanza se è un controllo server. Quello che conta è l'html prodotto e la modalità cui vengono restituiti i dati del form al chiamante, che è sempre quello.

Ma poi domando: che differenza c'è tra pippo prima riga e pippo seconda riga?

ciao
59 messaggi dal 07 novembre 2013
Il primo è il nome di un fumetto, il secondo il nome di un utente...ma quello era solo un esempio generico! Eccone un altro.... ad esempio una dropdown contenente chesso', dei libri divisi in MANUALI e ROMANZI, la stilizzo senza scrivere il codice. Aprendola, la tendina mostra:

MANUALI
arte
elettronica
informatica
ecc.......

ROMANZI
arte
amore
ecc....

Ecco che sei OBBLIGATO ad avere arte 2 volte (situazione analoga a quella del mio progetto.). Pur avendo risolto banalmente con "value" trovo completamente senza senso che ogni item abbia un index diverso in fase di progettazione....e a runtime invece le due "arte" ce l'abbiano uguale! E' un bug clamoroso. Come ripeto, rende inutile il predicato "dropdownlist.selectedindex". Meno male che ho assegnato ad ogni voce una value diversa ed ho usato "dropdownlist.selectedvalue". Dopo essere diventato matto a capire il perchè di tale comportamento e non aver ancora una vera spiegazione.
Modificato da uruse1980 il 08 maggio 2014 22.28 -

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.