Anche io ho trovato vari problemi. Il più strano è la necessità di premere 2 volte i linkbutton perchè questi facciano il loro lavoro. In realtà il postback avviene 2 volte ma la prima volta sembra andare perduto. La seconda volta funziona.
Facendo un po' di ricerche e di debug sembra che il primo post venga gestito come un"postback ajax" (passatemi questo termine) mentre il secondo è un trattato come un vero postback.
La soluzione che ho trovato è quello di registrare la GridView nella collezione dei Trigger del UpdatePanel che la contiene. Il trigger deve essere un PostBack e non un AsyncPostBack. In questo modo LinkButton tornano a funzionare al primo colpo.
<asp:updatepanel id="updtPnl" runat="server" updatemode="Conditional">
<contenttemplate>
<asp:gridview id="GV1">
.....
<asp:gridview>
</contenttemplate>
<triggers>
<asp:PostBackTrigger ControlID="GV1" />
<triggers>
<asp:updatepanel>
Anche la documentazione ufficiale relativa a PostBackTrigger sembra confermare questo uso. Non capisco però perchè funzioni con click in sequenza. Boh...
Probabilemente i problemi sono dovuti anche alla struttura abbastanza annidata dei componenti della mia pagina asp.net. In successione i "contenitori" sono:
- master page
- content page
- multiview
- view
- updatepanel
- gridview
- linkbutton (o imagebutton)
Sinceramente non ho fatto prove con una struttura più semplice. Appena trovo 10 minuti...
1 commento:
Ciao sono gigisector, grazie a questo tuo blog sono riuscito a perdere(investire) 4 ore del mio tempo per risolvere almeno il mio, spero anche il tuo problema. Prova ad utilizzare un SelectParameters sul Datacontrol della Detailsview e vedrai che tutto va bene(spero!!!). Ciao a presto
Posta un commento