<%''++++++++++++++++++++++++++++++++++++++++ ++++ +++++
''Пример вызова
'Dim int_RPP,int_Start,int_showNumberLink_,str_nonLinkColor_,toF_,toP10_,toP1_,toN1_,toN10_,toL_,showMorePageGo_Type_,cPageNo
'int_RPP=2 'Установить количество отображаемых на странице
'int_showNumberLink_=8 'Номер дисплея навигации по номеру
'showMorePageGo_Type_ = 1 'Это раскрывающееся меню или переход к входному значению. При многократном вызове можно выбрать только 1?
'str_nonLinkColor_="#999999" 'Цвет неактивной ссылки
'toF_="<font face=webdings>9</font>" 'Домашняя страница
'toP10_=" <font face=webdings>7</font>" 'Десять лучших
'toP1_=" <font face=webdings>3</font>" 'Предыдущий
'toN1_=" <font face=webdings>4</font>" 'Далее
'toN10_=" <font face=webdings>8</font>" 'Следующие десять
'toL_="<font face=webdings>:</font>" 'Последняя страница
'============================ ==============
'Этот код должен находиться между VClass_Rs.Open и циклом for.
' Устанавливаем VClass_Rs = CreateObject(G_FS_RS)
' VClass_Rs.Open This_Fun_Sql,User_Conn,1,1
' ЕСЛИ не VClass_Rs.eof ТОГДА
' VClass_Rs.PageSize=int_RPP
' cPageNo=NoSqlHack(Request.QueryString("Страница"))
' Если cPageNo="" Тогда cPageNo = 1
' Если не isnumeric(cPageNo), то cPageNo = 1
'cPageNo = Clng(cPageNo)
' Если cPageNo<=0, то cPageNo=1
' Если cPageNo>VClass_Rs.PageCount Тогда cPageNo=VClass_Rs.PageCount
' VClass_Rs.AbsolutePage=cPageNo
' FOR int_Start=1 TO int_RPP
''++++++++++
'Добавляем тело цикла для отображения данных
''++++++++++
'VClass_Rs.MoveNext
' если VClass_Rs.eof или VClass_Rs.bof, то выход для
' СЛЕДУЮЩИЙ
'КОНЕЦ ЕСЛИ
'==========================================
'response.Write "<p>"& fPageCount(VClass_Rs,int_showNumberLink_,str_nonLinkColor_,toF_,toP10_,toP1_,toN1_,toN10_,toL_,showMorePageGo_Type_,cPageNo)
''++++++++++++++ ++++++++++++++++++++++++++++++++++++++++++++++++ ++
'********************************************** *********
'Цель: сохранить параметры страницы пейджинга
'Отправка согласованности запроса
'Ввод: moveParam: параметр подкачки
'removeList: параметры, которые нужно удалить
'Возврат: URL-адрес пейджинга
'********************************************** *********
Функция PageUrl(moveParam,removeList)
тусклое имя строки
dim KeepUrl, KeepForm, KeepMove
RemoveList=removeList&","&moveParam
СохранитьФорму=""
Для каждого имени строки в Request.Form
'Определить отправку и нулевое значение в параметрах формы
если не InstrRev(","&removeList&",","&strName&",", -1, 1)>0 и Request.Form(strName)<>"" тогда
KeepForm=KeepForm&"&"&strName&"="&Server.URLencode(Request.Form(strName))
конец, если
RemoveList=removeList&","&strName
Следующий
KeepUrl=""
Для каждого имени строки в Request.QueryString
Если нет (InstrRev(","&removeList&",","&strName&",", -1, 1)>0) Тогда
KeepUrl = KeepUrl & "&" & strName & "=" & Server.URLencode(Request.QueryString(strName))
Конец, если
Следующий
KeepMove=KeepForm&KeepUrl
Если (KeepMove <> "") Тогда
KeepMove = Вправо(KeepMove, Len(KeepMove) - 1)
KeepMove = Server.HTMLEncode(KeepMove) & "&"
Конец, если
'PageUrl = replace(Request.ServerVariables("URL"),"/Search.asp","/Search.html") & "?" & KeepMove & moveParam & "="
PageUrl = "?" & KeepMove & moveParam & "="
Конечная функция
Функция fPageCount(Page_Rs,showNumberLink_,nonLinkColor_,toF_,toP10_,toP1_,toN1_,toN10_,toL_,showMorePageGo_Type_,Page)
Dim This_Func_Get_Html_,toPage_,p_,sp2_,I,tpagecount
Dim NaviLength,StartPage,EndPage
This_Func_Get_Html_ = "" : I = 1
NaviLength=showNumberLink_
если IsEmpty(showMorePageGo_Type_), то showMorePageGo_Type_ = 1
tpagecount=Page_Rs.pagecount
Если tPageCount<1 Тогда tPageCount=1
, если не Page_Rs.eof или не Page_Rs.bof, то
toPage_ = PageUrl("Page","submit,GetType,no-cache,_"),
если Page=1, то
This_Func_Get_Html_=This_Func_Get_Html_& "<font color="&nonLinkColor_&" title=""Home"">"&toF_&"</font> " &vbNewLine
Еще
This_Func_Get_Html_=This_Func_Get_Html_& "<a href="&toPage_&"1 title=""Homepage"">"&toF_&"</a> " &vbNewLine
Конец, если
если Страница<NaviLength, то
Начальная страница=1
еще
StartPage = fix(Page / NaviLength) * NaviLength
конец, если
КонечнаяСтраница=НачальнаяСтраница+NaviLength-1
Если EndPage>tPageCount Тогда EndPage=tPageCount
Если StartPage>1 Тогда
This_Func_Get_Html_=This_Func_Get_Html_& "<a href="&toPage_& Page - NaviLength &" title=""上"&int_showNumberLink_&"Page"">"&toP10_&"</a> " &vbNewLine
Еще
This_Func_Get_Html_=This_Func_Get_Html_& "<font color="&nonLinkColor_&" title=""上"&int_showNumberLink_&"page"">"&toP10_&"</font> " &vbNewLine
Конец Если
Если Страница <> 1 и Страница <>0 Тогда
This_Func_Get_Html_=This_Func_Get_Html_& "<a href="&toPage_&(Page-1)&" title=""Предыдущая страница"">"&toP1_&"</a> " &vbNewLine
Еще
This_Func_Get_Html_=This_Func_Get_Html_& "<font color="&nonLinkColor_&" title=""Предыдущая страница"">"&toP1_&"</font> " &vbNewLine
Конец, если
для I = StartPage до EndPage
Если I=Страница Тогда
This_Func_Get_Html_=This_Func_Get_Html_& "<b>"&I&"</b>" &vbNewLine
Еще
This_Func_Get_Html_=This_Func_Get_Html_& "<a href="&toPage_&I&">" &I& "</a>" &vbNewLine
Конец, если
Если I<>tPageCount, то This_Func_Get_Html_=This_Func_Get_Html_& vbNewLine
Далее
Если Страница <> Page_Rs.PageCount и Страница <>0 Тогда
This_Func_Get_Html_=This_Func_Get_Html_& " <a href="&toPage_&(Page+1)&" title=""Следующая страница"">"&toN1_&"</a> " &vbNewLine
Еще
This_Func_Get_Html_=This_Func_Get_Html_& "<font color="&nonLinkColor_&" title=""Следующая страница"">"&toN1_&"</font> " &vbNewLine
Конец Если
Если EndPage<tpagecount Тогда
This_Func_Get_Html_=This_Func_Get_Html_& " <a href="&toPage_& Page + NaviLength &" title=""下"&int_showNumberLink_&"Page"">"&toN10_&"</a> " &vbNewLine
Еще
This_Func_Get_Html_=This_Func_Get_Html_& " <font color="&nonLinkColor_&" title=""下"&int_showNumberLink_&"page"">"&toN10_&"</font> " &vbNewLine
Конец Если
если Page_Rs.PageCount<>Page тогда
This_Func_Get_Html_=This_Func_Get_Html_& "<a href="&toPage_&Page_Rs.PageCount&" title=""Последняя страница"">"&toL_&"</a>" &vbNewLine
Еще
This_Func_Get_Html_=This_Func_Get_Html_& "<font color="&nonLinkColor_&" title=""Последняя страница"">"&toL_&"</font>" &vbNewLine
Конец Если
Если showMorePageGo_Type_ = 1, то
Тусклый Show_Page_i
Show_Page_i = Страница + 1
если Show_Page_i > tPageCount, то Show_Page_i = 1
This_Func_Get_Html_=This_Func_Get_Html_& "<input type=""text"" size=""4"" maxlength=""10"" name=""Func_Input_Page"" onmouseover=""this.focus();"" onfocus="" this.value='"&Show_Page_i&"';"" onKeyUp=""value=value.replace(/[^1-9]/g,'')"" onbeforepaste=""clipboardData.setData('text',clipboardData .getData('text').replace(/[^1-9]/g,''))"">" &vbNewLine _
&"<input type=""button"" value=""Go"" onmouseover=""Func_Input_Page.focus();"" onclick=""javascript:var Js_JumpValue;Js_JumpValue=document.all.Func_Input_Page.value;if (Js_JumpValue=='' || !isNaN(Js_JumpValue)) location='"&topage_&"'+Js_JumpValue; else location='"&topage_&"1';"">" &vbNewLine
Else
This_Func_Get_Html_=This_Func_Get_Html_& " Jump:<select NAME = Menu1 onChange=""var Js_JumpValue;Js_JumpValue=this.options[this.selectedIndex].value;if(Js_JumpValue!='') location=Js_JumpValue;"">"
для i=1 до tPageCount
This_Func_Get_Html_=This_Func_Get_Html_& "<option value="&topage_&i
если Page=i, то This_Func_Get_Html_=This_Func_Get_Html_& " selected style='color:#0000FF'"
This_Func_Get_Html_=This_Func_Get_Html_& ">Page "&cstr(i)&"</option>" &vbNewLine
следующий
This_Func_Get_Html_=This_Func_Get_Html_& "</select>" &vbNewLine
End if
This_Func_Get_Html_=This_Func_Get_Html_& p_&sp2_&" <b>"&Page_Rs.PageSize&"</b> записей на страницу, теперь:<b><span class=""tx" "> "&sp2_&Page&"</span>/"&tPageCount&"</b> страниц, всего <b><span id='recordcount'>"&sp2_&Page_Rs.recordCount&"</span></b> записей."
else
«Нет записи
конец, если
fPageCount = This_Func_Get_Html_
Конечная функция
%>
http://blog.csdn.net/hzf100/archive/2006/12/28/1465471.aspx