Esempio AJAX con UpdatePanel

mercoledì 26 marzo 2008 - 14.38

volperubbia Profilo | Senior Member

Ciao a tutti,
da qualche giorno sto facendo delle prove con AJAX, e in particolare con l'UpdatePanel (l'esempio è in allegato). Non riesco però a far girare la pagina in modalità ajax, ovvero un click su un Button mi genera sempre il refresh dell'intera pagina, mentre io vorrei un refresh parziale.
Probabilmente ho qualche impostazione non corretta. Ho provato ad usare, con le stesse impostazioni del web.config, le drop down list in cascata e queste funzionano alla grande.

Qualche idea?
Davide

freeteo Profilo | Guru

ciao,
potrebbe essere che non hai come predefinito il "EnablePartialRendering="false" " dello ScriptManager, ma se non ricordo male è true di default...e quindi non ti dovrebbe servire, pero' nel tuo caso forse è modificato di default a false per qualche oscuro motivo.

Percio' prova a cambiare:

<asp:ScriptManager ID="ScriptManager1" runat="server" EnablePartialRendering="true" /> ....


Altre info le puoi trovare qui:
http://www.asp.net/AJAX/Documentation/Live/mref/T_System_Web_UI_UpdatePanelUpdateMode.aspx


ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

volperubbia Profilo | Senior Member

Ciao e grazie,
avevo già messo EnablePageMethods="True" e EnablePartialRendering="True". Sono andato aventi nelle prove, ma non sono convinto di una cosa, vista la mia scarsa esperienza in AJAX.
Allora ... se al tag BODY della pagina aggiungo onload="javascript:alert('Page (Re)Loaded');", tutto o k, nel senso che un click sul Button non fa scattare l'alert (a differenza di quanto succederebbe con un classico Button lato server).
Tuttavia se nel mio vb metto due break point in Page_Load o in Page_PreRender, nei due eventi ci passa ... è giusto questo? O dovrebbe non passarci?

Nella stessa pagina ho inserito due drop down list in cascata (prendendo spunto dal toolkit di ajax), la cui gestione punta a un servizio web. Funzionano alla grande. L'alert non scatta e Page_Load / Page_PreRender.

Davide

freeteo Profilo | Guru

>Ciao e grazie,
>avevo già messo EnablePageMethods="True" e EnablePartialRendering="True".
ok


>Sono andato aventi nelle prove, ma non sono convinto di una cosa,
>vista la mia scarsa esperienza in AJAX.
>Allora ... se al tag BODY della pagina aggiungo onload="javascript:alert('Page
>(Re)Loaded');", tutto o k, nel senso che un click sul Button
>non fa scattare l'alert (a differenza di quanto succederebbe
>con un classico Button lato server).
certo perche' tramite HttpXMLRequest javascript si arrangia a renderizzare solo quella parte di pagina lato client


>Tuttavia se nel mio vb metto due break point in Page_Load o in
>Page_PreRender, nei due eventi ci passa ... è giusto questo?
>O dovrebbe non passarci?
certo, perhce' cmq la chiamata al server fa tutto il ciclo,quindi ripassa per il load (sempre tramite HttpXMLRequest viene richiesta la pagina al server IIS) solamente che viene poi aggiornata solo la parte relativa a quell'UpdatePanel.
Questo perche' cmq IIS interpreta chiamata HTTP, quindi gli viene chiesta (e lui restituisce) tutta la pagina.E' la parte client che si arrangia a sapere cosa aggiornare e cosa lasciare stare della pagina...


>Nella stessa pagina ho inserito due drop down list in cascata
>(prendendo spunto dal toolkit di ajax), la cui gestione punta
>a un servizio web. Funzionano alla grande. L'alert non scatta
>e Page_Load / Page_PreRender.
certo per lo stesso motivo sanno cosa aggiornare, lasciando intatte le parti di pagina che non fanno parte di quel pannello/controllo che ha fatto la chiamata Ajax..


ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
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