Text/waterswea
1. Функция программы: реализация разбиения на страницы для повторителя
. 2. Дизайн формы:
1. Создайте новое веб-приложение ASP.NET с именем Повторитель2, путь сохранения — http://192.168.0.1/Repeater2 (Примечание: на моем компьютер. IP-адрес веб-сайта — 192.168.0.1, а домашний каталог — папка D:web) и нажмите «ОК».
2. Добавьте в форму таблицу с тремя строками и одним столбцом, добавьте элемент управления «Повторитель» в первую строку таблицы, добавьте два элемента управления «Метка» во вторую строку таблицы и добавьте четыре кнопки «Кнопка» в третью строку таблицы. стол.
3. Перейдите в окно HTML-кода и добавьте следующий код между <asp:Repeater id="Repeater1" runat="server"> и </asp:Repeater>:
<ItemTemplate>
<table id="Table2" style="FONT-SIZE: x-small" width="498">
<тр>
<td><%#DataBinder.Eval(Container,"DataItem.employeeid")%></td>
<td><%#DataBinder.Eval(Container,"DataItem.lastname")%></td>
</tr>
</таблица>
</ItemTemplate>
3. Разработка кода:
импортирует System.Data.SqlClient.
Открытый класс WebForm1
Наследует System.Web.UI.Page
Dim scon As New SqlConnection("server=localhost;database=northwind;uid=sa;pwd=123")
Тусклый sDA как SqlDataAdapter
Dim ds как набор данных
Dim currentPage As Integer 'Записывает, на какой странице вы находитесь в данный момент. Dim maxPage As Integer 'Сколько всего страниц? Const rowCount As Integer = 3 'Сколько строк на одной странице? Dim rowSum As Integer 'Сколько строк? есть ли всего
' Код формы
omitPrivate Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Обрабатывает MyBase.Load,
если не Page.IsPostBack Тогда
sDA = New SqlDataAdapter("выберите идентификатор сотрудника и фамилию из порядка сотрудников по идентификатору сотрудника", scon)
ds = новый набор данных
Пытаться
sDA.Fill(ds, "сотрудники")
'Получаем общее количество строк rowSum = ds.Tables(0).Rows.Count
Поймать бывшего как исключение
строкаСум = 0
End Try
'Если данных нет, выйдите из процесса. Если rowSum = 0, затем выйдите из Sub.
'Рассчитываем общее количество страниц данных просмотра. Если rowSum Mod rowCount > 0 Тогда
'Если есть остаток, прибавьте 1
maxPage = rowSum rowCount + 1
Еще
'Ровно делим maxPage = rowSumrowCount
Конец, если
текущая страница = 1
'Вызов связанного процесса данных readpage(currentPage)
БиндДанные()
Метка2.Текст = Макс.Страница
'Кнопки «Домой» и «Предыдущая страница» невидимы.Button1.Visible = False
Button2.Visible = Ложь
Конец, если
End Sub
'Создание процесса привязки данных
Суббинддата()
Повторитель1.Источник данных = ds
Повторитель1.Привязка Данных()
Метка1.Текст = текущая страница
End Sub
'Создайте процесс для заполнения набора данных
Дополнительная страница чтения (ByVal n As Integer)
sDA = New SqlDataAdapter("выберите идентификатор сотрудника и фамилию из порядка сотрудников по идентификатору сотрудника", scon)
ds = новый набор данных
дс.Очистить()
sDA.Fill(ds, (n - 1) * rowCount, rowCount, "сотрудники")
Завершить подписку
«Кнопка «Домой»
Private Sub Button1_Click (отправитель ByVal As System.Object, ByVal e As System.EventArgs) Обрабатывает Button1.Click
currentPage = 1
'Вызываем процесс заполнения набора данных readpage(currentPage)
'Привязка данныхBindData()
'Сделаем кнопки домашней страницы и первой страницы невидимыми и отобразим кнопки следующей и последней страниц Button1.Visible = False
Button2.Visible = Ложь
Button3.Visible = Истина
Button4.Visible = True
End Sub
'Кнопка перехода на предыдущую страницу
Частный Sub Button2_Click (Отправитель ByVal As System.Object, ByVal e As System.EventArgs) Обрабатывает Button2.Click
'Если текущая страница является второй, сделайте кнопки домашней страницы и предыдущей страницы невидимыми. Если Label1.Text > 2, то
Button3.Visible = Истина
Button4.Visible = Истина
Еще
Button1.Visible = Ложь
Button2.Visible = Ложь
Button3.Visible = Истина
Button4.Visible = Истина
Конец, если
текущаяСтраница = Метка1.Текст - 1
прочитать страницу (текущая страница)
БиндДанные()
Конец подзаголовка
'Кнопка следующей страницы
Private Sub Button3_Click (Отправитель ByVal As System.Object, ByVal e As System.EventArgs) Обрабатывает Button3.Click
'Если текущая страница является предпоследней, сделайте кнопки последней страницы и следующей страницы невидимыми. If Label1.Text < Label2.Text - 1 Тогда
Button1.Visible = Истина
Button2.Visible = Истина
Еще
Button1.Visible = Истина
Button2.Visible = Истина
Button3.Visible = Ложь
Button4.Visible = Ложь
Конец, если
текущаяСтраница = Метка1.Текст + 1
прочитать страницу (текущая страница)
БиндДанные()
End Sub
'Кнопка последней страницыPrivate Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Обрабатывает Button4.Click
'Установить для текущей страницы максимальное количество страниц currentPage = Label2.Text
прочитать страницу (текущая страница)
БиндДанные()
Button1.Visible = Истина
Button2.Visible = Истина
Button3.Visible = Ложь
Button4.Visible = Ложь
Конец субтитра
конечного класса
выглядит следующим образом: