67 messaggi dal 17 dicembre 2010
Utilizzando il SelectedItem e avendo una DropDownList con questi elementi, selezionando il 2° è come se avessi selezionato il 1°. Dove sbaglio?
<asp:ListItem Value="0">testo A</asp:ListItem>
<asp:ListItem Value="0">testo B</asp:ListItem>
<asp:ListItem Value="1">testo C</asp:ListItem>

Come si nota il 1° e 2° elemento hanno lo stesso valore. Mettendo valori diversi funziona...


CODICE COMPLETO DI ESEMPIO
<%@ Page Language="VB" %>

<script runat="server">
Sub scrivi()
Response.Write(DropDownList1.SelectedItem.text)
End Sub
</script>

<html>
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>

<asp:DropDownList ID="DropDownList1" runat="server">
<asp:ListItem Value="0">testo A</asp:ListItem>
<asp:ListItem Value="0">testo B</asp:ListItem>
<asp:ListItem Value="1">testo C</asp:ListItem>
</asp:DropDownList>

<asp:Button ID="Button1" runat="server" Text="Button" onclick="scrivi"/>

</div>
</form>
</body>
</html>

Dove sbaglio? Sembra assurdo!! :((
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao, non stai sbagliando nulla, è normale che sia così.
Quando si verifica il postback, il Value selezionato cioè "0" viene inviato insieme agli altri dati del POST. Al ricaricarsi della pagina, quando la DropDownList viene rigenerata, non può sapere se lo zero che ha ricevuto dal POST era quello del primo o del secondo elemento e come conseguenza non può far altro che selezionarti il primo.

Del resto, perché fornire due scelte diverse all'utente se poi il Value è lo stesso? Il Value dovrebbe sempre essere un dato che identifica univocamente una delle voci in elenco.

Ad esempio, se mi trovo nella scheda prodotto di una T-Shirt e devo scegliere se acquistarla Small, Medium o Large, nella DropDownList che contiene queste tre voci non userò il prezzo come Value ma un identificativo che mi permetta poi, lato server, di andare a recuperare tutte le informazioni correlate ad essa come prezzo, disponibilità, ecc... Tra l'altro, se nel Value mettessi il prezzo, sarei esposto al rischio che l'utente me lo modifichi a piacimento usando strumenti tipo Firebug e ciò scoraggia maggiormente questo uso.

ciao
Modificato da BrightSoul il 23 gennaio 2012 20.59 -

Enjoy learning and just keep making
67 messaggi dal 17 dicembre 2010
Oh...
Grazie per la rapida risposta!!!

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.