ASP长文章内容自动分页函数
<%
Const maxPagesize=1000???? '設置分頁字數(shù)
Function InsertPageBreak(strText)
Dim strPagebreak,s,ss
Dim i,IsCount,c,iCount,strTemp,Temp_String,Temp_Array
strPagebreak="[hiweb_break]"
s=strText
If Len(s)<maxPagesize Then
?? InsertPageBreak=s
End If
s=Replace(s, strPagebreak, "")
s=Replace(s, " ", "< >")
s=Replace(s, ">", "<>>")
s=Replace(s, "<", "<<>")
s=Replace(s, """, "<">")
s=Replace(s, "'", "<'>")
If s<>"" and maxPagesize<>0 and InStr(1,s,strPagebreak)=0 then
?? IsCount=True
?? Temp_String=""
?? For i= 1 To Len(s)
??? c=Mid(s,i,1)
??? If c="<" Then
???? IsCount=False
??? ElseIf c=">" Then
???? IsCount=True
??? Else
???? If IsCount=True Then
????? If Abs(Asc(c))>255 Then
?????? iCount=iCount+2
????? Else
?????? iCount=iCount+1
????? End If
????? If iCount>=maxPagesize And i<Len(s) Then
?????? strTemp=Left(s,i)
?????? If CheckPagination(strTemp,"table|a|b>|i>|strong|div|span") then
??????? Temp_String=Temp_String & Trim(CStr(i)) & ","
??????? iCount=0
?????? End If
????? End If
???? End If
??? End If
?? Next
?? If Len(Temp_String)>1 Then Temp_String=Left(Temp_String,Len(Temp_String)-1)
?? Temp_Array=Split(Temp_String,",")
?? For i = UBound(Temp_Array) To LBound(Temp_Array) Step -1
??? ss = Mid(s,Temp_Array(i)+1)
??? If Len(ss) > 380 Then
???? s=Left(s,Temp_Array(i)) & strPagebreak & ss
??? Else
???? s=Left(s,Temp_Array(i)) & ss
??? End If
?? Next
End If
s=Replace(s, "< >", " ")
s=Replace(s, "<>>", ">")
s=Replace(s, "<<>", "<")
s=Replace(s, "<">", """)
s=Replace(s, "<'>", "'")
InsertPageBreak=s
End Function
Function CheckPagination(strTemp,strFind)
Dim i,n,m_ingBeginNum,m_intEndNum
Dim m_strBegin,m_strEnd,FindArray
strTemp=LCase(strTemp)
strFind=LCase(strFind)
If strTemp<>"" and strFind<>"" then
?? FindArray=split(strFind,"|")
?? For i = 0 to Ubound(FindArray)
??? m_strBegin="<"&FindArray(i)
??? m_strEnd ="</"&FindArray(i)
??? n=0
??? do while instr(n+1,strTemp,m_strBegin)<>0
???? n=instr(n+1,strTemp,m_strBegin)
???? m_ingBeginNum=m_ingBeginNum+1
??? Loop
??? n=0
??? do while instr(n+1,strTemp,m_strEnd)<>0
???? n=instr(n+1,strTemp,m_strEnd)
???? m_intEndNum=m_intEndNum+1
??? Loop
??? If m_intEndNum=m_ingBeginNum then
???? CheckPagination=True
??? Else
???? CheckPagination=False
???? Exit Function
??? End If
?? Next
Else
?? CheckPagination=False
End If
End Function
Function ContentPagination(hiwebstr)
Dim ContentLen, maxperpage, Paginate
Dim arrContent, strContent, i
Dim m_strFileUrl,m_strFileExt,ArticleID
ArticleID=Request.QueryString("ID")
strContent = InsertPageBreak(hiwebstr)
ContentLen = Len(strContent)
CurrentPage=Request.QueryString("Page")
If CurrentPage="" Then CurrentPage=0
If InStr(strContent, "[hiweb_break]") <= 0 Then
?? ArticleContent = "<div id=""NewsContentLabel"" class=""NewsContent"">" & strContent & "</div><div id=""Message"" class=""Message""></div>"
Else
?? arrContent = Split(strContent, "[hiweb_break]")
?? Paginate = UBound(arrContent) + 1
?? If CurrentPage = 0 Then
??? CurrentPage = 1
?? Else
??? CurrentPage = CLng(CurrentPage)
?? End If
?? If CurrentPage < 1 Then CurrentPage = 1
?? If CurrentPage > Paginate Then CurrentPage = Paginate
?? strContent = "<div id=""NewsContentLabel"" class=""NewsContent"">"& arrContent(CurrentPage - 1)
?? ArticleContent = ArticleContent & strContent
?? If UserArticle = True Then
??? ArticleContent = ArticleContent & "</p></div><div id=""Message"" class=""Message""></div><p align=""center""><b>"
?? Else
??? ArticleContent = ArticleContent & "</p></div><p align=""center""><b>"
?? End If
?? If IsURLRewrite Then
??? m_strFileUrl = ArticleID & "_"
?? Else
??? m_strFileExt = ""
??? m_strFileUrl = "?id=" & ArticleID & "&Page="
?? End If
?? If CurrentPage > 1 Then
??? If IsURLRewrite And (CurrentPage-1) = 1 Then
???? ArticleContent = ArticleContent & "<a href="""& ArticleID & m_strFileExt & """>上一頁</a> "
??? Else
???? ArticleContent = ArticleContent & "<a href="""& m_strFileUrl & CurrentPage - 1 & m_strFileExt & """>上一頁</a> "
??? End If
?? End If
?? For i = 1 To Paginate
??? If i = CurrentPage Then
???? ArticleContent = ArticleContent & "<font color=""red"">[" & CStr(i) & "]</font> "
??? Else
???? If IsURLRewrite And i = 1 Then
????? ArticleContent = ArticleContent & "<a href="""& ArticleID & m_strFileExt & """>[" & i & "]</a> "
???? Else
????? ArticleContent = ArticleContent & "<a href="""& m_strFileUrl & i & m_strFileExt & """>[" & i & "]</a> "
???? End if
??? End If
?? Next
?? If CurrentPage < Paginate Then
??? ArticleContent = ArticleContent & " <a href="""& m_strFileUrl & CurrentPage + 1 & m_strFileExt & """>下一頁</a>"
?? End If
?? ArticleContent = ArticleContent & "</b></p>"
End If
Response.Write(ArticleContent)
End Function
%>
?
ASP長文章內(nèi)容自動分頁函數(shù)
主要功能:自動將長文章內(nèi)容分頁顯示,可自由設定分頁字數(shù),且不會截斷HTML代碼。
適用范圍:文章內(nèi)容自動分頁插件適用于所有ASP程序。
使用方法:
1.下載附件中的文件,將它解壓上傳到您的網(wǎng)站根目錄
2.在需要分頁的頁面最頂部調(diào)用剛剛上傳的文件。調(diào)用代碼
<!--include file="ContentAutoPage.asp"-->
3.在內(nèi)容顯示處 將原來的顯示代碼替換為: <%=ContentPagination(rs("變量字段"))%>。
轉(zhuǎn)載于:https://www.cnblogs.com/y0umer/archive/2009/09/27/3839438.html
總結(jié)
以上是生活随笔為你收集整理的ASP长文章内容自动分页函数的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 海量数据处理分析_BI
- 下一篇: 分析easyVM 未完成)