Belius' Blog

Il blog di Simone Belia
posts - 16, comments - 335, trackbacks - 31

Tutto dinamico.....ma ora c'è AJAX

Chi è che non si è mai trovato difronte alla problematica di Web User Control caricati dinamicamente? (la risposta dovrebbe essere "chi non lavora con ASP.NET"....ma fate finta che non ho detto nulla) :)

In ogni caso, la problematica è sempre la stessa:

dobbiamo stare attenti a quando questi vengono creati in quanto se aggiungo uno o più eventi ai controlli caricati a runtime questi non vengono catturati se non ho lo WUC presente entro il Page_Load.

Poco male....visto la  miriade di post che ci sono al riguardo e che per un verso e per un altro fanno tutti lo stesso giro.

La cosa però si complica se oltre ad utilizzare questa metodologia si vuole anche utilizzare AJAX ed un controllo File Upload aggiunto a runtime.

La tecnologia AJAX infatti non riesce a fare upload di file in modo asincontrono e proprio per questo è buona norma mettere il controllo FileUpload all'esterno di un UpdatePanel, così da avere un postback completo.
Se però il controllo deve essere per forza dentro un UpdatePanel si può traquillamente inserire un Trigger nel pannello al fine di permettere il Postback completo quando si usa il FileUpload.

Nel mio caso avevo dei pulsanti che inserivano dei WUC a runtime richiamando un metodo ed impostando il ViewState con le informazioni essenziali per ricreare i controlli al successivo postback. Nel Page_Load controllavo il ViewState e se questo non era vuoto ricreavo i WUC (così da permettere agli stessi di intercettare l'evento) e tutto andava che era una meraviglia.

Aggiungendo AJAX però tutto ciò non funzionava come volevo, in quanto ogni volta che richiamavo un evento asincrono dei controlli creati a runtime, il trigger che diceva di fare un Postback completo al controllo FileUpload andava a farsi friggere.
Dopo una mezza giornata di testate contro il muro o provato a fare una cosa.....ho creato l'override del metodo CreateChildControls ed ho inserito qua dentro la "ricreazione" dei controlli così da anticipare il Page_Load.

Ora tutto funziona......ma quanto ci sarebbe da dire rispetto all'ordine di richiamo dei metodi e degli eventi del Framework.

Print | posted on lunedì 1 ottobre 2007 17:01 | Filed Under [ ASP.NET AJAX ]

Feedback

Gravatar

# re: Tutto dinamico.....ma ora c'è AJAX

1- tanto se dai le testate al muro non ti fai male perché becchi il cappello
2- esasperato, io avevo stampato l'ordine degli eventi del caricamento della pagina e ne avevo affisso una copia sul muro. L'altra copia, stampata, era il foglio più usato dell'ufficio...
01/10/2007 18:03 | marco
Gravatar

# Ajax dynamic user control

Ajax dynamic user control
12/10/2007 15:36 | Pingback/TrackBack
Gravatar

# re: Tutto dinamico.....ma ora c'è AJAX

Ciao trooper,

puoi gestire la logica di ripristino dentro al CreateChildControl.
Logicamente il panel dove sono i controlli deve stare dentro ad un UpdatePanel se utilizzi metodi asincroni.

ciao
Simone
19/11/2008 13:58 | Belius
Gravatar

# Klonopin.

Klonopin clean and sober. Klonopin side effects. Is librium comparable to klonopin. Fedex klonopin with precription. Klonopin.
30/06/2009 19:32 | Klonopin sideeffects.
Gravatar

# Klonopin side effects.

Buy klonopin online. Klonopin and exercise. Klonopin. Medication klonopin. Buy klonopin online without a prescription.
30/06/2009 22:08 | Klonopin withdrawl symptoms.
Gravatar

# Klonopin delivered overnight.

Xanax with klonopin.
Gravatar

# Klonopin side effects.

Klonopin withdrawal symptoms. Fedex klonopin with precription. Klonopin overnight delivery. Klonopin. Klonopin abuse.
02/07/2009 17:30 | Klonopin.
Gravatar

# Percoced.

Percoced.
23/11/2009 12:51 | Percoced.
Gravatar

# process per globe cannot

production extinction concerns records
25/11/2009 13:38 | process per globe cannot
Gravatar

# Hydrocodone side effects.

Side effects of hydrocodone.
16/01/2010 02:52 | Side effects of hydrocodone.
Comments have been closed on this topic.

Powered by:
Powered By Subtext Powered By ASP.NET