15 messaggi dal 14 marzo 2011
Buongiorno a tutti.
Sto cercando di capire come funziona il timer Ajax, ho creato una semplicissima pagina aspx contenente solo un timer da 4 secondi e un button, ciascuno in un updatepanel separato:

<body>
  <form id="form1" runat="server">
    <asp:ScriptManager ID="ScriptManager1" runat="server" EnableViewState="False"/>
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" ChildrenAsTriggers="False" UpdateMode="Conditional">
      <ContentTemplate>
        <asp:Timer ID="Timer1" runat="server" Interval="4000"/>
      </ContentTemplate>
    </asp:UpdatePanel>
    <asp:UpdatePanel ID="UpdatePanel2" runat="server" ChildrenAsTriggers="False" EnableViewState="False" UpdateMode="Conditional">
      <ContentTemplate>
        <asp:Button ID="Button1" runat="server" Text="Button" />
      </ContentTemplate>
    </asp:UpdatePanel>
  </form>
</body>


Se nel code-behind metto una qualunque istruzione nell'evento PreRender del button, ad esempio:
  Protected Sub Button1_PreRender(sender As Object, e As System.EventArgs) Handles Button1.PreRender
    Button1.Text = "Testo"
  End Sub

e imposto un breakpoint su quell'istruzione Button1.Text, vedo che ogni 4 secondi viene eseguita. Non capisco: il fatto di aver "isolato" il Button nel suo UpdatePanel senza Triggers e con UpdateMode="Conditional" non dovrebbe far sì che se ne stia "inerte" se si scatenano eventi in altri UpdatePanel?
Ringrazio in anticipo per qualunque informazione vogliate darmi.
Massimo
Mmax2 wrote:
e imposto un breakpoint su quell'istruzione Button1.Text, vedo che ogni 4 secondi viene eseguita. Non capisco: il fatto di aver "isolato" il Button nel suo UpdatePanel senza Triggers e con UpdateMode="Conditional" non dovrebbe far sì che se ne stia "inerte" se si scatenano eventi in altri UpdatePanel?

il fatto che venga scatenato è normale: stai incercettando un evento di rendering, che avviene sempre e comunque. l'unica differenza è che, non essendo l'updatepanel da aggiornare, non verrà prodotto un output. è così che funziona ASP.NET AJAX ed è per questo che fai ancora in tempo ad evitare di usarlo
.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
15 messaggi dal 14 marzo 2011
Ti ringrazio molto Daniele per la tua risposta.
Che cosa dovrei usare allora per evitare il periodico ricaricamento della pagina?
Massimo
Mmax2 wrote:
Ti ringrazio molto Daniele per la tua risposta.
Che cosa dovrei usare allora per evitare il periodico ricaricamento della pagina?

chiamate AJAX a servizi REST:
http://www.aspitalia.com/articoli/asp.net/jquery-ajax.aspx
.

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP

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.