2010-08-10 72 views
7

當我提供ASP.NET頁面時,是否可以並行呈現頁面上的各種控件?當我提供ASP.NET頁面時,是否可以並行呈現頁面上的各種控件?

我在頁面上有幾個Telerik控件(RadGrids),當我逐步瀏覽正在加載的頁面時,看起來好像控件是數據綁定和串行渲染。 也許這種行爲是因爲我迷上了調試器。

是否有加載頁面,並有選擇控件建立在不同的線程?這是甚至在概念上可行還是必須按順序進行?

+0

偉大的問題! – womp 2010-08-10 19:56:46

回答

3

你有幾個選項。您可以使用ASP.NET異步頁面模型。我們的想法是,您可以異步加載每個控件的數據,然後將該數據綁定到檢索到的每個控件上。

這將是這個樣子:

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(); 
} 

你會在頁面上的每個控件執行相同。最終結果是呈現頁面的時間將等於呈現最慢呈現控件的時間。

另一種方法是使用AJAX加載控件。我不熟悉Telerik RadGrid控件,但我會認爲它支持AJAX。下面是一個Telerik演示頁面的鏈接,演示如何執行Telerik網格的程序客戶端綁定:http://demos.telerik.com/aspnet-ajax/grid/examples/client/databinding/defaultcs.aspx