Questa callback mi sta facendo impazzire

giovedì 13 aprile 2006 - 22.29

paolopat Profilo | Junior Member

Ciao a tutti, seguendo un corso video di asp.net 2.0, è illustrato il seguente esempio che non vuole proprio funzionare :
ho un database con dei titoli azionari, la pagina viene caricata con i dati la prima volta ed ogni 5 secondi dovrebbe richiamare una funzione che aggiorna i dati senza eseguire il postback della pagina...tutto questo facendo una callback :

public partial class _Default : System.Web.UI.Page, ICallbackEventHandler
{
private string r;

protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
// Invoco il giusto adapter...
TitoliTableAdapter tta = new TitoliTableAdapter();
BorsaDataManager.TitoliDataTable dt = tta.GetValoriTitoli();

gvTitoli.DataSource = dt;
gvTitoli.DataBind();
}


string cbScript = "window.setInterval(" + MyCallbackReference + ",5000)";
//Registrazione script di callback
ClientScript.RegisterStartupScript(this.GetType(),"startupscript" ,string.Format("<script>window.setInterval(\"{0}\",5000)</scrip>", MyCallbackReference));
//ClientScript.RegisterStartupScript(this.GetType(),"startupscript",cbScript,true);
}

protected string MyCallbackReference
{
get
{
return ClientScript.GetCallbackEventReference(this, null, "aggiornaDati", null, true);
}
}

#region ICallbackEventHandler Members

public string GetCallbackResult()
{
return r;
}

public void RaiseCallbackEvent(string eventArgument)
{
r = "Chiamata callback..";
}

#endregion
}

Ed una parte della pagina è la seguente :

<script type="text/javascript">
function aggiornaDati(risultato,contesto)
{
alert(risultato);
alert(contesto);
}
</script>
<form id="form1" runat="server">
<div>
<asp:GridView ID="gvTitoli" runat="server" BackColor="White" BorderColor="#999999"
BorderStyle="None" BorderWidth="1px" CellPadding="3" Font-Names="Verdana" Font-Size="8pt"
GridLines="Vertical">
<FooterStyle BackColor="#CCCCCC" ForeColor="Black" />
<RowStyle BackColor="#EEEEEE" ForeColor="Black" />
<SelectedRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" />
<PagerStyle BackColor="#999999" ForeColor="Black" HorizontalAlign="Center" />
<HeaderStyle BackColor="#000084" Font-Bold="True" ForeColor="White" />
<AlternatingRowStyle BackColor="#DCDCDC" />
</asp:GridView>

</div>
</form>

Non fate caso alla variabile "r" mi è servita fino ad oggi per capire se almeno entrasse nel RaiseCallbackEvent facendo il debug..ma niente...C'è un errore al caricamento della pagina...dovuto a qualcosa nel javascript...però nel corso video funziona correttamente!! Come mai ?

PS : la funzione aggiornaDati dovrebbe aggiornare i dati della pagina, però ora ci sono solo due alert, per provare che venga eseguita ogni 5 secondi ma non c'è niente da fare.

positron Profilo | Newbie

Ciao, non ho visto il codice per intero. Per ora ho solo notato che la chiusura del tag </script> e' scorretta (manca la lettera "t" alla fine).
In attesa di suggerimenti piu' approfonditi...


Paolo Marini

paolopat Profilo | Junior Member

dopo ore di lettura e rilettura me ne sono accorto anche io...grazie mille
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