Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание выбора страниц 
:(
    Опции темы
Alex
Дата 27.1.2005, 02:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 4147
Регистрация: 25.3.2002
Где: Москва

Репутация: нет
Всего: 162



Код

<% 
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
Скачать!


--------------------
Написать можно все - главное четко представлять, что ты хочешь получить в конце. 
PM Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0595 ]   [ Использовано запросов: 23 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.