<asp:Timer ID="tmrSplineChart" runat="server" ontick="tmrSplineChart_Tick" Interval="25000"> </asp:Timer> <asp:UpdatePanel ID="updChart" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false"> <Triggers> <asp:AsyncPostBackTrigger ControlID="tmrSplineChart" EventName="Tick" /> </Triggers> <ContentTemplate> <%Response.Write (DateTime.Now.ToLongTimestring());%> </ContentTemplate> </asp:UpdatePanel>
Risultato: Non aggiorna .. PERCHE'?
Se provate a vedere la pagina con firebug (per esempio) attivando la console scoprirete che il comando Response.Write ( ... ) è causa di un errore.
E non solo blocca completamente tutto quello che avviene nell'update panel ( prima o dopo ), in breve ( dopo aver generato un errore ) inibisce il rendering del content template.
Come lo si risolve?
Ci sono vari metodi, il primo è di utilizzare controlli specifci come label textbox e simili.
E se ci fosse un qualcosa di più complesso ? Come ad esempio registrare un script da eseguire in client side ?
public void UpdateData() { lblDate.Text = "Last Update: " + DateTime.Now.ToLongTimeString(); string s = @" $(document).ready(function() { alert (" Eccomi !"); }); "; ScriptManager.RegisterClientScriptBlock( this.Page, this.Page.GetType(), "Alert_Eccomi", s, true); }
Il mio consiglio e di utilizzare lo ScritpManager ( classe statica presente nell'oggetto Page ), che è ne più ne meno lo ScriptManager Ajax.
In questo modo lo script sarà "implementato nella pagina e gestito" senza troppe complicazioni.
Jquery ( come da esempio ) funziona !
Nessun commento:
Posta un commento