2010-08-10 10 views
7

Quando servo una pagina ASP.NET, posso rendere i vari controlli sulla pagina in parallelo?Quando servo una pagina ASP.NET, posso rendere i vari controlli sulla pagina in parallelo?

Ho alcuni controlli Telerik (RadGrids) sulla pagina e quando passo attraverso la pagina che viene caricata, sembra che i controlli siano dati e resi in serie. Forse questo comportamento è perché sono collegato con il debugger.

Esiste comunque il caricamento della pagina e i controlli di selezione vengono creati su thread separati? È anche concettualmente possibile o deve essere fatto in sequenza?

+0

Ottima domanda! – womp

risposta

3

Hai un paio di opzioni. È possibile utilizzare il modello di pagina asincrono ASP.NET. L'idea sarebbe che carichi i dati per ciascun controllo in modo asincrono e quindi li colleghi a ciascun controllo mentre viene recuperato.

Sarebbe simile a questa:

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (Page.IsAsync) { 
     dataSource.GetDataCompleted += 
      new GetDataCompletedEventHandler(GetDataCompleted); 
     dataSource.GetDataAsync(); 
    } 
    else { 
     _yourCtl.DataSource = dataSource.GetData(); 
     _yourCtl.DataBind(); 
    } 
} 

void GetDataCompleted(object sender, GetDataCompletedEventArgs e) { 
    _yourCtl.DataSource = e.Result; 
    _yourCtl.DataBind(); 
} 

Si potrebbe fare lo stesso per ogni controllo sulla pagina. Il risultato finale è che il tempo per il rendering della pagina sarà uguale al tempo per il rendering del controllo di rendering più lento.

Un metodo alternativo sarebbe utilizzare AJAX per caricare i controlli. Non ho familiarità con il controllo RadGrid di Telerik, ma suppongo che supporti AJAX. Ecco un collegamento a una pagina demo di Telerik che mostra come eseguire l'associazione programmatica lato client di una griglia Telerik: http://demos.telerik.com/aspnet-ajax/grid/examples/client/databinding/defaultcs.aspx.

Problemi correlati