| Код | <% Option Explicit
'Переменные Dim adoCon Dim strCon Dim strSQL Dim pRecordset Dim iPage, i Dim cntMax Dim rowCount Dim iFrom, iTo Dim iPageSize Dim iPagelift
iPageSize = 5 'Задаём размер страницы iPagelift = 3 'Задаём кол-во страниц
'Подключаемся к базе Set adoCon = Server.CreateObject("ADODB.Connection") strCon = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("database.mdb") adoCon.Open strCon
'Смотрим введена ли страница в ссылку iPage = Request.QueryString("page") 'Если страница не введена в ссылку тогда присваиваем в переменную первую страницу If Len(iPage) = 0 Or Not IsNumeric(iPage) Then iPage = 1 'Выводим информацию из таблицы tblPages Set pRecordset = Server.CreateObject("ADODB.Recordset") strSQL = "SELECT Name FROM tblPages" pRecordset.CursorType = 1 pRecordset.Open strSQL, adoCon pRecordset.PageSize = iPageSize 'Проверяем пустая таблица или нет If pRecordset.EOF Then Response.Write "Sorry no matching records" Else pRecordset.AbsolutePage = iPage End If 'Вызываем функцию выбора страниц If pRecordset.PageCount > 1 Then Call fncPages(iPagelift) Response.Write vbCrLf & "<br>" 'vbCrLf Чем то служит для выравнивания кода, ещё служит пробелом Response.Write vbCrLf & "<br>" 'Выводим информацию с таблицы While Not pRecordset.EOF And rowCount < pRecordset.PageSize rowCount = rowCount + 1 Response.Write vbCrLf & "<li>" & pRecordset("Name") & "</li>" pRecordset.MoveNext Wend Response.Write vbCrLf & "<br>" Response.Write vbCrLf & "<br>" 'Функцию выбора старниц вызываем ещё раз If pRecordset.PageCount > 1 Then Call fncPages(iPagelift) 'Закрываем pRecordset pRecordset.Close Set pRecordset = Nothing
'Отключаемся от базы adoCon.Close Set adoCon = Nothing
'Функция выбора страниц Function fncPages(iPagelift)
'Задаем в переменную cntMax выбранный размер страницы cntMax = pRecordset.PageCount 'Выбор всех страниц With Response .Write vbCrLf & "Pages:" .Write vbCrLf & "<select onChange=""location=(this.value)"" name=""selPages"">" For i = 1 To cntMax Response.Write vbCrLf %><option value="<% = Request("URL") %>?page=<% = i %>"<% If iPage = "" & i & "" Then Response.Write " selected" %>><% = i %></option><% Next .Write vbCrLf & "</select>" End With 'Если мы не на первой странице, тогда ... If Not iPage = 1 Then 'Ссылка на первую страницу Response.Write vbCrLf & "<a href=""" & Request("URL") & "?page=1""><<</a>" 'Ссылка на одну страницу назад, если мы не на первой странице Response.Write vbCrLf & "<a href=""" & Request("URL") & "?page=" & Int(iPage - 1) & """><</a>" End If 'Проверяем на какой странице находимся iTo = cINT(iPage) + iPagelift iFrom = cINT(iPage) - iPagelift For i = 1 To cntMax If Not i = cINT(iPage) Then If i >= iTo Then If i = iTo Then Response.Write vbCrLf & "..." Else If i <= iFrom Then If i = iFrom Then Response.Write vbCrLf & "..." Else Response.Write vbCrLf & "<a href=""" & Request("URL") & "?page=" & i & """>" & i & "</a>" End If End If Else Response.Write vbCrLf & "<b>" & i & "</b>" End If Next 'Если мы не на последней странице, тогда ... If Not cntMax = cINT(iPage) Then 'Ссылка на одну страницу вперёд Response.Write vbCrLf & "<a href=""" & Request("URL") & "?page=" & Int(iPage + 1) & """>></a>" 'Ссылка на последнюю страницу Response.Write vbCrLf & "<a href=""" & Request("URL") & "?page=" & cntMax & """>>></a>" End If End Function 'fncPages %> |
Короче код никак не получается написать на этом ASP :stena За то, всё что надо, тут есть! Пример: http://www.webstudio.ee/alex/lessons/page/default.aspСкачать!
--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце.
|