Penso di aver capito dove stà il problema.
Sto realizzando un carrello per un sito ecommerce.

in poche parole il pulsantino che permette di aggiungere un prodotto al carrello non fa altro che
aggiornare il valore di una hashtable e copiarla dentro una Session appositamente creata.
La funzione che fa tutto ciò viene eseguita da mydatagrid.itemcommand (questo perchè tutti i prodotti da inserire vengono bindati in un datagrid). Il tutto e implementato in uno user contro che si chiama elenco_prodotti.

Fatto ciò, ho creato un altro controllo personalizzato che si chiama dettaglio_carrello.
in questo user contro ho inserito un datagrid che dovrebbe visualizzare ciò che si trova all'interno del carrello. Nel codice, creo una funzione che i chiama MyDatagrid_Load(sender es obj.. ... , e as... .. ) handles MyDatagrid.PreRender .

dunque legge recupera l'hashtable dalla Session e la binda nel datagrid. Dunque non appena aggiungo un prodotto, al click sull'icona "aggiungi prodotto" avviene il post back, e quando mi si riapre la pagina il controllo dettaglio_carrello funziona correttamente. QUESTO perchè utilizzo MyDatagrid.PreRender, se sostituisco prerender con mydattagrid.Load devo clikkare fare in modo da ricreare 2 post back affinchè riesca a leggere la session con i valori reali.

Detto ciò, se continuo ad utilizzare PreLoad, perdo la funzionalità dell'evento mydropdownlist.SelectedIndexChanged di una dropdownlist che aggiungo successivamente al datagrid contenente il dettaglio_carrello a runtime.

Come potrei risolvere?? cambio MyDataGrid.PreRender con MyDatagrid.load la dropdown funziona ma ho il problema della session "ritardata".