Пейджинговый механизм - PullRequest
0 голосов
/ 23 июня 2009

Я нахожусь в ситуации работы с большим количеством записей в сетке. Вместо того, чтобы связывать все записи в сетке. почему мы не должны связывать множество записей, которые относятся к 5-й странице.

Ответы [ 2 ]

2 голосов
/ 23 июня 2009

В качестве хорошей практики не следует привязывать все записи, извлеченные из запроса, непосредственно к элементу управления, такому как представление сетки, если, конечно, вы абсолютно не уверены, что число записей невелико.

Это потому, что когда количество записей огромно, страница загружается медленнее, поскольку привязка занимает много времени.

Один из подходов, который я использовал в моем предыдущем проекте, - это выборка общего количества записей, затронутых запросом. (Допустим, их 1000).

Затем я делю количество записей на размер страницы (скажем, 100).

Так что теперь я предоставляю нумерацию страниц (1-10).

Когда пользователь нажимает на определенную страницу, я выбираю записи, относящиеся к этой странице, используя функцию ROW_NUMBER() в SQL.

Запрос будет выглядеть примерно так:

SELECT x, y, ROW_NUMBER() OVER(ORDER BY z asc) AS 'RowNumber'
FROM t WHERE RowNumber > lowerlimit and RowNumber < upperlimit.

Нижний и верхний пределы рассчитываются с использованием номера текущей страницы и размера страницы.

Надеюсь, это ответит на ваш вопрос

2 голосов
/ 23 июня 2009

Вы можете включить подкачку в GridView, установив для AllowPaging значение true и PageSize для количества записей, которые вы хотите отобразить на странице.

Преимущество подкачки состоит в том, что вы можете привязать полный источник данных к своему GridView и позволить пользователю перемещаться между страницами; гораздо меньше программируется на стороне сервера, чтобы всегда работать с полным источником данных.

EDIT:

Также рекомендуется не помещать весь набор данных в состояние просмотра GridView, лучше выбрать кэширование данных и повторную привязку при загрузке страницы

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