Ответ Элисон упоминает об этом, и я хочу еще раз подчеркнуть: вы действительно не должны отображать 10000 записей одновременно.Даже с минимальным HTML (который GridView
не будет генерировать, поскольку он создает длинные идентификаторы на стороне сервера), вы создали огромную страницу для загрузки пользователями.
Вы также создалимного работы для вашего сервера - работа, которая может быть (есть?) совершенно ненужной.Сколько ваших пользователей вы ожидаете, чтобы пройти все 10000 записей одновременно?Это требует больших усилий даже для преданных своему делу людей.
Лучший способ повысить производительность и сделать вашу страницу более удобной в использовании - это добавить подкачку страниц.Это немного сложно, но разбиение по страницам уменьшит размер данных, которые должен передавать ваш сервер, и значительно сократит время, затрачиваемое браузером на вызов AJAX и рендеринг HTML.
Обзор MSDNвверх здесь .По сути, когда страница меняется, вам нужно сделать что-то вроде этого ( примечание: не точный код):
byte pageSize;
protected override void OnInit(EventArgs e)
{
pageSize = 50;
}
void GridView_Overview_PageIndexChanging(Object sender, GridViewPageEventArgs e)
{
GridView_Overview.DataSource = dataTable.Skip(pageSize * e.NewPageIndex).Take(pageSize);
GridView_Overview.DataBind();
}
Вы должны будете включить директиву using System.Data.Linq;
в верхней части страницы кода.Возможно, вы захотите позволить пользователю выбрать количество элементов на странице, и в этом случае вы получите pageSize
из элемента управления на странице, вместо того, чтобы установить его в OnInit
, как я сделал.