Несколько дней назад я писал о <<Реализации подкачки страниц в хранимых процедурах>> и <<Подробное объяснение событий управления GridView>>. Позже некоторые люди спрашивали меня, как применить эту штуку в GridView. На самом деле, это очень просто! , в основном, как Существует проблема с сохранением номера PageIndex текущей страницы, но все проще решить. Поскольку в процессе разбиения на страницы: PageSize определен, мы можем использовать атрибут для его представления. сохраняйте PageIndex, а данные не очень большие. В принципе, ресурсов много не будет. Как говорится, сколько бы слов ни было сказано, не бывает примеров, которые были бы интуитивно понятны.
Здесь мы будем использовать скрытое поле. чтобы сохранить PageIndex, который является номером текущей страницы. При нажатии на предыдущую страницу его значение будет уменьшено. Во-первых, известно, что оно равно 0. Следует отметить, что номер первой страницы здесь равен 0. вместо 1. Давайте посмотрим на код, а потом проанализируем его!
1
2 <Столбцы>
3
4 5 DataTextField="Title" HeaderText="Заголовок новости" ItemStyle-Width="70%"/>
6
7 8 ShowEditButton="True"/>
9 Колонки>
10
11
12
13
Home 14
Предыдущая страница 15
Следующая страница 16
Последняя страница 17
Код в файле CS:
1 защищенный void PagerButton_Click (отправитель объекта, EventArgs e)
2 {
3 int pageIndx = Convert.ToInt32(CurrentPage.Value);
4 целых числа = NewsManager.GetNews(0, pageSize).TotalRecords;
5 целых страниц = (итого % pageSize) == 0 ? (итого/pageSize): (итого/pageSize + 1);
6 строковый arg = ((LinkButton)sender).CommandArgument.ToString().ToLower();
7 переключатель (аргумент)
8 {
9 случай «предыдущий»:
10, если (pageIndx > 0)
11 {
12 pageIndx -= 1;
13}
14 перерыв;
15 случай «следующий»:
16 if (pageIndx < страниц - 1)
17 {
18 страницIndx += 1;
19}
20 перерыв;
21 случай «последний»:
22 pageIndx = страниц - 1;
23 перерыв;
24по умолчанию:
25 страницИндкс = 0;
26 перерыв;
27}
28 ТекущаяСтраница.Значение = pageIndx.ToString();
29 NewsGrid.DataSource = NewsManager.GetNews(pageIndx, pageSize).Entities;
30 NewsGrid.DataBind();
31}
Разве это не очень просто? Вы поймете это после прочтения кода. Я не буду здесь вдаваться в подробности использования кнопок для передачи параметров. В <<Класс сущностей приложения EntitySet реализует аналогичные общие функции>. >здесь можно найти в статьях
http://www.cnblogs.com/xdotnet/archive/2006/09/29/gridview_paging_myself.html