Могу ли я отображать различные элементы управления на странице параллельно, когда я обслуживаю страницу ASP.NET? - PullRequest
7 голосов
/ 10 августа 2010

Когда я обслуживаю страницу ASP.NET, могу ли я отображать различные элементы управления на странице параллельно?

У меня есть несколько элементов управления Telerik (RadGrids) на странице, и при просмотре загружаемой страницы создается впечатление, что элементы управления привязаны к данным и отображаются последовательно. Возможно, это связано с тем, что я подключен к отладчику.

Есть ли способ загрузить страницу и выбрать элементы управления на отдельных потоках? Это даже концептуально возможно или должно быть сделано последовательно?

Ответы [ 2 ]

3 голосов
/ 11 августа 2010

У вас есть несколько вариантов. Вы можете использовать модель асинхронной страницы 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.

0 голосов
/ 10 августа 2010

Взгляните на эту статью, надеюсь, она даст вам верное направление:

http://www.codeproject.com/Articles/38501/Multi-Threading-in-ASP-NET.aspx

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...