Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    un vero BUG nel DROPDOWNLIST

    ciao,
    spero che qualcuno di voi mi smentisca perchè non trovo una soluzione. Provate a fare queste cose:

    private void Page_Load(object sender, System.EventArgs e)
    {
    if(!IsPostBack)
    {
    for(int i=0;i<10;i++)
    DropDownList1.Items.Add(new ListItem(i.ToString(),"daniele"));
    }
    }

    poi mettete l'evento:
    this.DropDownList1.SelectedIndexChanged += new System.EventHandler(this.cambia);

    private void cambia(object sender, System.EventArgs e)
    {
    Response.Write(DropDownList1.SelectedItem);
    }

    mettete chiarametne AutoPostBack=true nel drop

    Praticamente avete i vari valori dell'ITEM uguali mentre i valori TEXT diversi. in questo caso non scatta l'evento perchè per lui sei sempre sullo stesso ITEM. Se invece provate a cambiare i valori tutto torna alla normalità.


    Credo anche di capire il funzionamento di selezione però dovrebbe capire che il texzt è diverso.


    Faccio un esempio pratico. Se io nel drop ho la lista dei prodotti con il loro prezzo

    banana - 10
    olive - 5
    mouse - 10

    se io seleziono mouse lui mi si posizionerà su banana quindi mi sfalsa le selzioni.....soluzioni?

  2. #2
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Carissimo Daniele, per questa volta non è un errore di Asp.Net, ma di un tuo errore
    Infatti dovresti sapere che un <select dentro un <form, quando viene spedita la pagina, manda indietro il name del select ed il suo value, non il suo text. Perciò, come credi che debba fare quel poveraccio di asp.net a conoscere l'item selezionato?

    ciao
    Pietro

  3. #3
    lo sapevo questo...però dovrebbe fare riferimento in caso di value uguali anche al text perchè altrimenti mi sfalsa le selezioni, quindi secondo me è una vera e propria limitazione. In definitiva non puoi utilizzare una drop se hai value uguali per un qualsiasi motivo vedi l'esempio dei prodotti. Non puoi fare una cosa del genere perchè in caso nel value hai prezzi uguali ti sfalsa tutto quindi sei costretto a fare sempre un'interrogazione al db

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da Daniele80
    lo sapevo questo...però dovrebbe fare riferimento in caso di value uguali anche al text perchè altrimenti mi sfalsa le selezioni, quindi secondo me è una vera e propria limitazione. In definitiva non puoi utilizzare una drop se hai value uguali per un qualsiasi motivo vedi l'esempio dei prodotti. Non puoi fare una cosa del genere perchè in caso nel value hai prezzi uguali ti sfalsa tutto quindi sei costretto a fare sempre un'interrogazione al db
    Allora, se vado a vedere cosa riceve la pagina aspx quando viene rispedita indietro, trovo un parametro di nome "DropDownList1" e di valore "Daniele". Punto. Nessuno, nè io nè te, nè tantomeno asp.net è in grado di ricavare di più. La soluzione è quello di utilizzare i controlli html come vanno usati, cioè mettere un identificativo per ogni option e un testo per la descrizione. Perciò, i value degli option devono essere univoci. Ma nulla ci impedisce di mettere quello che vogliamo, per esempio più informazioni separate da un punto e virgola (semplicissimo da separare nel server)

    ciao
    Pietro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.