148 messaggi dal 12 aprile 2001
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
così a naso direi che se esegui il bind del DataGrid in modo asincorno è possibile che la pagina sia renderizzata senza che il Bind sia terminato.

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
148 messaggi dal 12 aprile 2001
Se questo fosse vero, c'è modo di forzare il rendering della pagina alla fine del Bind?

Grazie a chiunque voglia darmi una dritta.

Linus
personalmente non ho mai realizzato una pagina aspx asincrona, sicuramente la versione 2.0 offre un supporto migliore, ma stai utilizzando la 1.x.

cambia approccio, non richimare il bind finche l'operazione asincrona di estrazioni dati non termina.

onestamente sembra in questo caso non ci sono vantaggi evidenti nella creazione di un oprazione asincrona, devo comunque attendere di ricevere i dati

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
148 messaggi dal 12 aprile 2001
Il mio problema è che il reperimento dei dati dal DB è piuttosto lungo e volevo visualizzare un messaggio di attesa finchè l'output non era pronto.
Se qualcuno ha qualche suggerimento alternativo inerente alla questione ben venga.

Io ero abituato con ASP ad utilizzare una gif animata e visualizzarla immediatamente con un response.flush, ma non so come fare la stessa cosa con ASP.NET

L'unica idea che mi era venuta in mente era l'uso dei delegati, ma non riesco a far funzionare la cosa.

Linus
148 messaggi dal 12 aprile 2001
Nessuno ha qualche soluzione alternativa per poter visualizzare una scritta o un'immagine di attesa finchè vengono ricercati i dati nel DB.
Sono aperto a qualsiasi suggerimento in merito.

Linus
la risposta alla tua domanda:

ajax, fai una ricerca su google ti si apre un universo :)

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

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.