Datagrid e combo su riga

venerdì 05 giugno 2009 - 18.31

d@dora Profilo | Senior Member

ciao a tutti, quesito del venerdi' sera:
ho un datagrid dove in ogni riga o 2 dropdownlist.
La seconda dropdown viene caricata da records diversi a seconda delle selezioni fatte sulla prima.
Non so come intercettare l'autopostback generato dalla modifica della prima combo, perche' non so qual'e' l'evento che viene scatenato.

mi potete dare una mano ???

ciao e grazie

paoval72 Profilo | Senior Member

Ciao. Stavamo proprio discutendo di una situazione simile (per un radiobuttonlist) in un altro thread.
Prima di tutto, va registrato l'evento per il mio controllo DropDownList (lato client):
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Poi, creiamo il nostro evento lato server. Qui è in C#: l'evento di default viene registrato con nomecontrollo_SelectedIndexChanged. Puoi chiamarlo come vuoi, l'importante è che corrisponda all'aspx e che le firme siano quelle di un EventArg (cioè: object sender, EventArgs e)
Il sender è il controllo chiamante, quindi la dropdonlist su cui stai lavorando. Basta fare il cast e poi procedere col tuo codice per caricvare l'altra dropdownlist
protected void ddl_sel_SelectedIndexChanged(object sender, EventArgs e) { DropDownList ddl = (DropDownList)sender; //Potevo anche solo fare ((DropDownList)sender).proprietà_che_mi_serve //ma assegnandolo ad un controllo appena creato ti eviti di riscrivere ogni volta il cast ddl.proprietà_che_mi_serve }
Ad esempio, se vuoi sapere il valore selezionato: ddl.SelectedValue (oppure ddl.SelectedItem.Value)
la parte più complessa arriverà ora, quando dovrai riempire l'altra ddl, ovviamente sulla stessa riga. Come scritto sull'altro thread, si fa, è solo un po' lungo (e per come lo faccio io, contorto!).
Ciao,
PV

d@dora Profilo | Senior Member

sto utilizzando il tuo sistema, mi puoi dire qual'e' il thread al qule ti riferisci ????
almeno provo con il resto della soluzione .....

ciao e grazie

paoval72 Profilo | Senior Member

Ciao. Certo che te lo giro!
http://www.dotnethell.it/forum/messages.aspx?ThreadID=30916
Il thread è ancora aperto perchè stiamo proseguendo su argomenti successivi: vedi se trovi qualcosa d'interessante. Sennò sono sempre qui (nei limiti del lavoro e delle conoscenze!) a disposizione.
Buon lavoro,
PV

d@dora Profilo | Senior Member

RISOLTO, almeno il mio problema....

'aggancio la mia dropdown
Dim cmbTipo As DropDownList = CType(sender, DropDownList)

'recupero la riga che contiene la mia dropdown
Dim dgi As DataGridItem = cmbTipo.NamingContainer

' cerco la dropdown da caricare con i nuovi valori in funzione della prima
Dim cmbMot As DropDownList = dgi.FindControl("cmbMOT")

'rifaccio il databinding sulla seconda dropdown
cmbMot = cmbMotBinding(cmbMot, cmbTipo.SelectedValue)


ciao e grazie

paoval72 Profilo | Senior Member


Ciao,
PV
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5