Функция пейджинга ASP, пейджинговая навигация
Автор:Eve Cole
Время обновления:2009-06-26 18:09:37
программный код
<%
'//Функция пейджинга
'//psize: количество данных, отображаемых на каждой странице.
'//pindex: номер текущей страницы
'//tbName: имя таблицы
'//keyIndex: пейджинг по какому полю, обычно саморастущего типа (автоматическая нумерация базы доступа)
'//где: условия запроса
'//order: условия сортировки, по умолчанию - "порядок по " &keyIndex &" desc"
'//Общее количество записей и общее количество страниц можно получить непосредственно из возвращенного набора результатов. В поле datacount хранится общее количество записей, а в поле pagecount хранится общее количество страниц.
частный пиндекс, количество данных, страницы
'счет данных = 0
'страниц = 1
публичная функция ChangePage(psize,tbName,keyIndex,where,order)
dimsqlstring
pindex = Trim(Request.QueryString("страница"))
если не isnumeric(psize) или psize="" то psize=1'//Количество данных, отображаемых на каждой странице
если не isnumeric(pindex) или pindex="" то pindex=1'//Номер текущей страницы
if order="" then order=" упорядочить по " & keyIndex & " desc"
'//Получаем общее количество данных
'dim количество данных, страниц
set rs=conn.execute("select count(*) as datacount from " & tbName & " где 1=1 " & где)
datacount = rs("datacount")'//Общее количество записей
RS.закрыть
установить rs=ничего
'//Подсчитаем общее количество страниц
если (datacount mod psize)=0 тогда
страницы = количество данных psize
еще
страницы = количество данных psize + 1
конец, если
'//
если cint(pindex)>страницы, то pindex=страницы
'Соединяем строку sql
если пиндекс<=1, то
sqlstring="select top " & psize & " *," & datacount & " как datacount," & Pages & " как количество страниц из " &_
tbName & " где 1=1 " & где & " " & порядок
еще
sqlstring="select top " & psize & " *," & datacount & " как datacount," & Pages & " как количество страниц из " &_
tbName & " где 1=1 и " & keyIndex & " нет в (выберите верхний " & (pindex-1)*psize & " " & keyIndex & " from " &_
tbName & " где 1=1 " & где & " " & порядок & ") " & где & " " & порядок
конец, если
'Response.Write(sqlstring)
установите ChangePage=conn.execute(sqlstring)
конечная функция
'//Навигация по страницам
'//fileName: имя файла/текущая страница, можно оставить пустым
'//argString: параметры подкачки, такие как classid=1&tid=16, необходимую страницу параметров для подкачки заполнять не нужно
'//pindex: номер текущей страницы
'//datacount: общее количество записей
'//страницы: общее количество страниц
'//showMsg: отображать ли информацию о подкачке, параметр имеет значение true/false
'//showText: отображать ли навигацию по домашней странице, предыдущей странице, следующей странице и последней странице, параметры: true/false
'//showNumber: отображать ли цифровую пейджинговую навигацию, параметр имеет значение true/false
'публичная функция pageLink(fileName,argString,pindex,datacount,pages,showMsg,showText,showNumber)
общедоступная функция pageLink(fileName,argString,showMsg,showText,showNumber)
'//
если argString<>"", то argString = argString & "&"
если не showText и не showNumber, тогда showText=true
'//
если показатьMsg, то
Ответ.Запись("[")
Response.Write("<span style='color:red;'>" & pindex & "</span> страница")
Response.Write("/分<span style='color:red;'>" &pages&"</span>pages")
Response.Write("/Total<span style='color:red;'>" & datacount & "</span> Records")
Ответ.Запись("]")
конец, если
'//
если показатьтекст, то
если пиндекс>1, то
Response.Write("<a href="" & fileName & "?" & argString & "page=1'>[Home]</a>")
Ответ.Запись(" ")
Response.Write("<a href="" & fileName & "?" & argString & "page=" & pindex - 1 & "'>[Предыдущая страница]</a>")
еще
Response.Write("[Домой]")
Ответ.Запись(" ")
Response.Write("[Предыдущая страница]")
конец, если
Ответ.Запись(" ")
если pindex<страницы, то
Response.Write("<a href="" & fileName & "?" & argString & "page=" & pindex + 1 & "'>[следующая страница]</a>")
Ответ.Запись(" ")
Response.Write("<a href='" & fileName & "?" & argString & "page=" &pages & "'>[последняя страница]</a>")
еще
Response.Write("[следующая страница]")
Ответ.Запись(" ")
Response.Write("[последняя страница]")
конец, если
конец, если
'//
если showNumber, то
Ответ.Запись(" ")
для i = от 4 до 1 шаг -1
если (пиндекс - i)>0, то
Response.Write("<a href="" & fileName & "?" & argString & "page=" & pindex - i & "'>" & pindex - i & "</a>")
Ответ.Запись(" ")
конец, если
следующий
'//
Response.Write("<span style='color:red;'>" & pindex & "</span>")
'//
для я = от 1 до 4
если (pindex + i)<= страницы, то
Ответ.Запись(" ")
Response.Write("<a href='" & fileName & "?" & argString & "page=" & pindex + i & "'>" & pindex + i & "</a>")
конец, если
следующий
'//
конец, если
'//
конечная функция
%>