Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
ASP.NET 1.0/1.1
Acquisire i dati da un Repeater e DropDownList
mercoledì 20 aprile 2005 - 10.02
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
sacsacsac
Profilo
| Newbie
44
messaggi | Data Invio:
mer 20 apr 2005 - 10:02
Buongiorno a tutti.
In una pagina ASPX ho un repeater, all'interno del quale, nell'ItemTemplate, praticamente ho due TD, in cui in una ho un valore di un campo di una tabella (descrizione di un prodotto) e nell'altra TD ho una DropDownlist che popolo dinamicamente in base al prodotto (valutazione del prodotto/servizio da parte di un utente).
Bene e sin qui tutto funziona!
A fine pagina c'è un tastino per mezzo del quale voglio salvarmi la valutazione dell'utente, per cui per ogni id del prodotto corrisponderà ad una id valutazione.
La mia domanda è, come faccio ad acquisire i valori della Dropdownlist che l'utente ha selezionato e che io dinamicamente ho popolato in funzione del prodotto?
Dovrei ciclare il repeater nel codebehind (c#) per elaborare ogni idprodotto e prendermi la idvalutazione?
E ma come si fa?
Ciao
Grazie anticipatamente a tutti
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mer 20 apr 2005 - 14:31
Si è proprio così, bisogna fare un ciclo su tutti gli oggetti della pagina.
Il Repeater è un controllo molto evoluto e, una volta renderizzato, al suo interno troveremo numerosi oggetti spesso ripetuti (td e tr).
Per ciclare su tutti gli oggetti è sufficiente cosruire una funzione ad hoc che accetti come parametro una Collection tipo ControlCollection e il corpo della funzione deve contenere una roba tipo:
for each object a in Collezione
Se la collection contiene più di 0 oggetti è necessario richiamare la funzione ricorsivamente. In questo modo ottieni tutta la gerarchia degli oggetti.
Fai un IF per verificare se il tipo di controllo è una dropdown. se sì recuperi i valrori.
ciao
david
sacsacsac
Profilo
| Newbie
44
messaggi | Data Invio:
mer 20 apr 2005 - 16:21
Ti ringrazio infinitamente per aver risposto al mio quesito.
Un altro amico del forum mi ha indicato un'altra soluzione, alla pressione del tasto nella pagina ASPX:
private void Button1_Click(object sender, System.EventArgs e)
{
foreach(RepeaterItem item in Repeater1.Items)
{
DropDownList ctl = (DropDownList) item.FindControl("DropDownList1");
Response.Write( "-->"+ ctl.SelectedItem.ToString();
Response.End();
}
);
}
La funzione cicla per ogni item del repeater ma al secondo giro (ce ne sono 5 di item) mi va in errore e mi da "Riferimento a un oggetto non impostato su un'stanza di oggetto (System.NullReferenceException)"
Le dropdownlist sono valorizzate, prima di cliccare sul tasto seleziono gli elementi di tutte le dropdownlist.
Come mai va in errore?
Ti viene in mente qualcosa?
Potresti indicarmi il codice della tua soluzione?
Ciao
Grazie infinitamente
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !