Premetto che è la prima volta che uso deletage, ma mi sembrava di aver capito abbastanza.
ho queste 3 funzioni
private bool CaricaDatiDelegate(bool VisualizzaPDF)
{
...
Carico il dataset da DB SQLSERVER
...
}
private void VisualizzaDati(bool VisualizzaPDF)
{
...
VisualizzaReport();
...
}
public void VisualizzaReport()
{
...
dg.DataSource = ds.Tables["Tabella"]. DefaultView;
dg.DataBind();
...
}
Se le richiamo in modo sequenziale (come di solito)
CaricaDatiDelegate(VisualizzaPDF);
VisualizzaDati(VisualizzaPDF);
tutto funziona correttamente.
Se invece faccio cosi:
FunctionDelegate delegato = new FunctionDelegate(CaricaDatiDelegate);
AsyncCallback CBDelegate = new AsyncCallback(FunctionCallbackDelegate);
delegato.BeginInvoke(VisualizzaPDF, CBDelegate,delegato);
public void FunctionCallbackDelegate(IAsyncResult ar)
{
...
FunctionDelegate fd = (FunctionDelegate)((AsyncResult)ar).AsyncDelegate;
VisualizzaPDF = fd.EndInvoke(ar);
VisualizzaDati(VisualizzaPDF );
}
non mi appare a video il datagrid.
La cosa strana è che andando in debug arrivo correttamente fino alla riga "dg.DataBind();" e il datagrid ha la sorgente impostata correttamente con tutti i dati al loro posto, ma sembra che non venga fatto il refresh della pagina.
Praticamente vedo i dati "statici" impostati sulla pagina che vengono caricati nel Page_load, ma non vedo i dati caricati dalla funzione delegate
Sapete dirmi qualcosa in merito.
Devo fare qualcosa in più per forzare l'output della pagina
Spero di essere stato chiaro.
Linus