Õâ¸ö·ÖҳʹÓõÄÊÇ0Óα꣬Ҳ¾ÍÊÇRs.Open Sql,Conn,0,1¡£µ«ÊǸоõÒ²¿ì²»Á˶àÉÙ£¬10 ÍòÌõÊý¾ÝµÄ·Öҳʱ¼ä300¶àºÀÃëÖ®¼ä <% Class Page Private CurrPage Private PageN Private UrlStr Private TempStr Private ErrInfo Private IsErr Private TotalRecord Private TotalPage Public PageRs Private TempA(11) Private TempB(8) '------------------------------------------------------------ Private Sub Class_Initialize() CurrPage=1'//ĬÈÏÏÔʾµ±Ç°Ò³ÎªµÚÒ»Ò³ PageN=10'//ĬÈÏÿҳÏÔʾ10ÌõÊý¾Ý UrlStr="#" TempStr="" ErrInfo="ErrInfo:" IsErr=False End Sub Private Sub Class_Terminate() If IsObject(PageRs) Then PageRs.Close Set PageRs=Nothing End If Erase TempA Erase TempB End Sub '---------------------------------------------------------- '//»ñÈ¡µ±Ç°Ò³Âë Public Property Let CurrentPage(Val) CurrPage=Val End Property Public Property Get CurrentPage() CurrentPage=CurrPage End Property '//»ñȡÿҳÏÔʾÌõÊý Public Property Let PageNum(Val) PageN=Val End Property Public Property Get PageNum() PageNum=PageN End Property '//»ñÈ¡URL Public Property Let Url(Val) UrlStr=Val End Property Public Property Get Url() Url=UrlStr End Property '//»ñȡģ°å Public Property Let Temp(Val) TempStr=Val End Property Public Property Get Temp() Temp=TempStr End Property '------------------------------------------------------------ Public Sub Exec(Sql,ConnObj) On Error Resume Next Set PageRs=Server.CreateObject("ADODB.RecordSet") PageRs.CursorLocation = 3 'ʹÓÿͻ§¶ËÓα꣬¿ÉÒÔʹЧÂÊÌá¸ß PageRs.PageSize = PageN '¶¨Òå·ÖÒ³¼Ç¼¼¯Ã¿Ò³ÏÔʾ¼Ç¼Êý PageRs.Open Sql,ConnObj,0,1 If Err.Number<>0 Then Err.Clear PageRs.Close Set PageRs=Nothing ErrInfo=ErrInfo&"½¨Á¢»ò´ò¿ª¼Ç¼¼¯´íÎó..." IsErr=True Response.Write ErrInfo Response.End End If TotalRecord=PageRs.RecordCount'//Èç¹ûΪ0ÄØ£¿ If TotalRecord>=1 Then '----------------------------------------------------------------------------¿ªÊ¼ '//¼ÆËã×ÜÒ³Êý,Ps,Ϊʲô²»ÓÃPageRs.PageCountÄØ£¿ 'If TotalRecord Mod PageN=0 Then 'TotalPage=PageRs.RecordCount/PageN 'Else 'TotalPage=PageRs.RecordCount/PageN 'TotalPage=Abs(Int(TotalPage)) 'End If TotalPage=PageRs.PageCount '//´¦Àíµ±Ç°½ÓÊÕÒ³Âë,ĬÈϵÄΪ1£¬ËùÒÔ²»ÊÇÊý×ÖÀàÐ͵ͼ»áΪ1 If IsNumeric(CurrPage) Then CurrPage=CLNg(CurrPage) If CurrPage<1 Then CurrPage=1 If CurrPage>TotalPage Then CurrPage=TotalPage Else '//Dim M:M="":IsNumeric(M)=True CurrPage=1 End If '---------------------------------------------------------------------------½áÊø Else TotalPage=0 CurrPage=1 End If '// PageRs.AbsolutePage = CurrPage 'absolutepage£ºÉèÖÃÖ¸ÕëÖ¸Ïòijҳ¿ªÍ· PageRs.PageSize=PageN End Sub Private Sub Init() 'Private TempA(10) TempA(1)="{N1}" '//Ê×Ò³ TempA(2)="{N2}"'//ÉÏÒ»Ò³ TempA(3)="{N3}"'//ÏÂÒ»Ò³ TempA(4)="{N4}"'//βҳ TempA(5)="{N5}"'//µ±Ç°Ò³Âë TempA(6)="{N6}"'//Ò³Âë×ÜÊý TempA(7)="{N7}"'//ÿҳÌõÊý TempA(8)="{N8}"'//ÎÄÕÂ×ÜÊý TempA(9)="{L}"'//Ñ»·±êÇ©¿ªÊ¼ TempA(10)="{N}"'//Ñ»·ÄÚµ¥±êÇ©£ºÒ³Âë TempA(11)="{L/}"'//Ñ»·±êÇ©½áÊø 'Private TempB(8) TempB(1)="Ê×Ò³" TempB(2)="ÉÏÒ»Ò³" TempB(3)="ÏÂÒ»Ò³" TempB(4)="βҳ" TempB(5)=CurrPage'//µ±Ç°Ò³Âë TempB(6)=TotalPage'//Ò³Âë×ÜÊý TempB(7)=PageN'//ÿҳÌõÊý TempB(8)=TotalRecord'//ÎÄÕÂ×ÜÊý End Sub Public Sub Show(Style) If IsErr=True Then Response.Write ErrInfo Exit Sub End If Call Init() Select Case Style Case 1 Response.Write StyleA() Case 2 Response.Write StyleB() Case 3 Response.Write StyleC() Case 4 Response.Write StyleD() Case Else ErrInfo=ErrInfo&"²»´æÔÚµ±Ç°Ñùʽ..." Response.Write ErrInfo End Select End Sub Public Function ShowStyle(Style) If IsErr=True Then ShowStyle=ErrInfo Exit Function End If Call Init() Select Case Style Case 1 ShowStyle= StyleA() Case 2 ShowStyle= StyleB() Case Else ErrInfo=ErrInfo&"²»´æÔÚµ±Ç°Ñùʽ..." ShowStyle=ErrInfo End Select End Function Private Function StyleA() 'Ê×Ò³ ÉÏÒ»Ò³ ÏÂÒ»Ò³ βҳ ±¾Ò³ÎªµÚ1/20Ò³£¬¹²20Ò³£¬Ã¿Ò³10Ìõ£¬ÎÄÕÂ×ÜÊý200Ìõ '//·ÖÒ³ÑùÀý£º[Ê×Ò³] [ÉÏÒ³] [ÏÂÒ³] [βҳ] [Ò³´Î£º4/5Ò³] [¹²86ƪ 20ƪ/Ò³] תµ½£º_ Ò³ '//±êÇ©£º{N1} {N2} {N3} {N4} || ¹²:{N8}Ìõ¼Ç¼ {N6}Ò³ µ±Ç°ÎªµÚ{N5}Ò³ ÿҳ{N7}Ìõ If IsEmpty(TempStr) Then ErrInfo=ErrInfo&"Ä£°åΪ¿Õ..." StyleB=ErrInfo Exit Function End If Dim M If TotalPage>1 Then If CurrPage>1 Then M="<a href='"&UrlStr&"Page=1'>"&"Ê×Ò³"&"</a>" TempStr=Replace(TempStr,"{N1}",M) M="<a href='"&UrlStr&"Page="&CurrPage-1&"'>"&"ÉÏÒ»Ò³"&"</a>" TempStr=Replace(TempStr,"{N2}",M) If CurrPage<TotalPage Then M="<a href='"&UrlStr&"Page="&CurrPage+1&"'>"&"ÏÂÒ»Ò³"&"</a>" TempStr=Replace(TempStr,"{N3}",M) M="<a href='"&UrlStr&"Page="&TotalPage&"'>"&"βҳ"&"</a>" TempStr=Replace(TempStr,"{N4}",M) Else TempStr=Replace(TempStr,"{N3}","ÏÂÒ»Ò³") TempStr=Replace(TempStr,"{N4}","βҳ") End If Else TempStr=Replace(TempStr,"{N1}","Ê×Ò³") TempStr=Replace(TempStr,"{N2}","ÉÏÒ»Ò³") M="<a href='"&UrlStr&"Page="&CurrPage+1&"'>"&"ÏÂÒ»Ò³"&"</a>" TempStr=Replace(TempStr,"{N3}",M) M="<a href='"&UrlStr&"Page="&TotalPage&"'>"&"βҳ"&"</a>" TempStr=Replace(TempStr,"{N4}",M) End If Else TempStr=Replace(TempStr,"{N1}","Ê×Ò³") TempStr=Replace(TempStr,"{N2}","ÉÏÒ»Ò³") TempStr=Replace(TempStr,"{N3}","ÏÂÒ»Ò³") TempStr=Replace(TempStr,"{N4}","βҳ") End If T=TempStr T=Replace(T,"{N8}",TotalRecord) T=Replace(T,"{N6}",TotalPage) T=Replace(T,"{N5}",CurrPage) T=Replace(T,"{N7}",PageN) TempStr=T StyleA=TempStr End Function Private Function StyleB() 'Ê×Ò³ |< 1 2 3 4 5 6 7 >| βҳ '//±êÇ©:{N1} {N2} {L}{N}{L/}{N3}{N4} If IsEmpty(TempStr) Then ErrInfo=ErrInfo&"Ä£°åΪ¿Õ..." StyleB=ErrInfo Exit Function End If Dim ForceNum,BackNum'//µ±Ç°Ò³µÄÇ°ÃæºÍºóÃæÏÔʾ¸öÊý ForceNum=5 BackNum=4 Dim M '//Ê×Ò³ M="<a href='"&UrlStr&"Page=1'>"&TempB(1)&"</a>" TempStr=Replace(TempStr,"{N1}",M) '//βҳ M="<a href='"&UrlStr&"Page="&TempB(6)&"'>"&TempB(4)&"</a>" TempStr=Replace(TempStr,"{N4}",M) '//ǰһҳ M="|<" If CurrPage-1>=1 Then M="<a href='"&UrlStr&"Page="&CurrPage-1&"'>"&"|<"&"</a>" End If TempStr=Replace(TempStr,"{N2}",M) '//ºóÒ»Ò³ M=">|" If CurrPage+1<=TotalPage Then M="<a href='"&UrlStr&"Page="&CurrPage+1&"'>"&">|"&"</a>" End If TempStr=Replace(TempStr,"{N3}",M) '//È¡³öÑ»·±êÇ© Dim N1,N2,N3,N4,N5,N6 If InStr(TempStr,"{L}")>0 Then N1=InStr(TempStr,"{L}") End If If InStr(TempStr,"{L/}")>0 Then N2=InStr(TempStr,"{L/}") End If If N2<=N1 Then ErrInfo=ErrInfo&"Ñ»·±êÇ©³ö´í..." StyleB=ErrInfo Exit Function End If N3=Mid(TempStr,N1,N2-N1+4)'//´¢´æ°üÀ¨{L}{L/}Ñ»·±êÇ©µÄÄ£°å N4=Replace(N3,"{L}","")'//´¢´æ²»°üÀ¨{L}{L/}Ñ»·±êÇ©µÄÄ£°å N4=Replace(N4,"{L/}","") '//Ò³ÂëÁбí Dim FirstPageNum,LastPageNum If CurrPage-ForceNum<=1 Then FirstPageNum=1 PageList="" Else FirstPageNum=CurrPage-ForceNum PageList="... ..." End If If CurrPage+BackNum>=TotalPage Then LastPageNum=TotalPage PageList_2="" Else LastPageNum=CurrPage+BackNum PageList_2="... ..." End If Dim I For I=FirstPageNum To LastPageNum If I=CurrPage Then N5=Replace(N4,"{N}","<b>"&I&"</b>") N6=N6&N5 Else M="<a href='"&UrlStr&"Page="&I&"'>"&I&"</a>" N5=Replace(N4,"{N}",M) N6=N6&N5 End If Next TempStr=Replace(TempStr,N3,N6) StyleB=TempStr End Function Private Function StyleC() 'Ê×Ò³ |< |<< 1 2 3 4 5 6 7 >>| >| βҳ '//´Ë·ç¸ñÔÚStyleBµÄ»ù´¡ÉÏÐ޸ģ¬Ôö¼ÓÁ½¸ö±êÇ©£º{N9}ÉÏ10Ò³ {N10}ÏÂ10Ò³ '//±êÇ©:{N1}{N2}{N9}{L}{N}{L/}{N10}{N3}{N4} Dim T T=StyleB() '//ǰʮҳ M="|<<" If CurrPage-10>=1 Then M="<a href='"&UrlStr&"Page="&CurrPage-10&"'>"&"|<<"&"</a>" End If T=Replace(T,"{N9}",M) M=">>|" If CurrPage+10<=TotalPage Then M="<a href='"&UrlStr&"Page="&CurrPage+10&"'>"&">>|"&"</a>" End If T=Replace(T,"{N10}",M) StyleC=T End Function Private Function StyleD() '//´Ë·ç¸ñÔÚStyleCµÄ»ù´¡ÉÏÐÞ¸Ä '//¹²{N8}Ìõ¼Ç¼ {N6}Ò³ µ±Ç°ÎªµÚ{N5}Ò³ ÿҳ{N7}Ìõ '//Ê×Ò³ |< |<< 1 2 3 4 5 6 7 >>| >| βҳ '//±êÇ©:{N1}{N2}{N9}{L}{N}{L/}{N10}{N3}{N4} Dim T T=StyleC() T=Replace(T,"{N8}",TotalRecord) T=Replace(T,"{N6}",TotalPage) T=Replace(T,"{N5}",CurrPage) T=Replace(T,"{N7}",PageN) StyleD=T End Function End Class %>
|