128 messaggi dal 07 agosto 2002
Ciao a tutti. Provo a spiegare il mio problema.
Ho una pagina abbastanza complessa, con una serie di updatepanel e di timer perchè ho bisogno che la pagina sia aggiornata man mano. I timer sono enabled=false e vengono resi enabled checkando determinati flags. Ogni Panel è impostato con updatemode=conditional e i relativi trigger sono impostati correttamente direi.
Ho previsto la gestione del begin e end request e mi sono accorto di questo problema:
al primo postback asincrono, indipendentemente dal controllo che lo genera, la funzione beginrequest è invocata una volta (ed è tutto ok), ma la funzione endrequest viene invocata 2 volte. Controllando l'id del postback element, questo è lo stesso in entrambi i casi.
al secondo post back, la funzione beginrequest viene invocata 2 volte e l'endrequest 3 volte... e così via.
E' come se incrementasse di uno ogni volta. Come se il controllo fosse duplicato o l'evento fosse scatenato due volte.
Tra l'altro avviene solo "lato client" poichè sul server va solo una volta. Infatti impostando un breakpoint nella funzione richiamata nel codebehind, ci passa una volta sola.
Come è possibile che si duplichino?
3.168 messaggi dal 06 settembre 2002
Contributi | Blog
Ciao,

solo una domanda, usi il metodo pageLoad nel JS per attaccarti a beginrequest e endrequest. se si sappi che quel metodo vine invocato ad ogni postback asincrono e se non controlli questo fatto aggiungi sempre l'handler.

HTH

Nothing can be born from hartred

Stefano (SM15455) Mostarda
http://blogs.aspitalia.com/SM15455
Rome Italy
128 messaggi dal 07 agosto 2002
sm15455 ha scritto:
Ciao,

solo una domanda, usi il metodo pageLoad nel JS per attaccarti a beginrequest e endrequest. se si sappi che quel metodo vine invocato ad ogni postback asincrono e se non controlli questo fatto aggiungi sempre l'handler.

HTH


SEI UN GRANDE! NON CI AVEVO PENSATO!
era una modifica che mi avevano consigliato di inserire nel metodo pageLoad queste istruzioni
var manager = Sys.WebForms.PageRequestManager.getInstance()
manager.add_beginRequest(BeginRequestHandler);
manager.add_endRequest(EndRequestHandler);

mentre io le avevo messe direttamente nell'aspx in un tag script subito dopo lo scriptmanager.
Ho rimesso tutto come prima e ora funziona come deve!

Grazie

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.