ASP 数字分页效果代码

  最近网站改版正好发现原来的分页不带数字的,只有首页 上页 下页 末页 然后是select的跳转,都是以前比较流行的,而现在比较流行的是数字分页在中间,正好研究并分享下,需要的朋友可以参考下

  效果:

ASP 数字分页效果代码

  

  国外的核心代码:

  

复制代码 代码如下:

  <%

  'digg style pagination script in asp.. written by Moazam... http://www.moazam.com/2007/03/30/asp-digg-style-pagination-script/

  function getPaginationString(page, totalitems, limit, adjacents, targetpage)

  'defaults

  if not isnumeric(adjacents) then adjacents = 1 end if

  if not isnumeric(limit) then  limit = 15 end if

  if not isnumeric(page) then page = 1 end if

  if targetpage = "" then targetpage = "/" end if

  margin = ""

  padding=""

  'other vars

  prev = page - 1         'previous page is page - 1

  nextPage = page + 1         'nextPage page is page + 1

  lastpage = Ceil(totalitems , limit)    'lastpage is = total items / items per page, rounded up.

  lpm1 = lastpage - 1        'last page minus 1

  ' Now we apply our rules and draw the pagination object.

  ' We're actually saving the code to a variable in case we want to draw it more than once.

  pagination = ""

  if lastpage > 1 then

  pagination = pagination & "<div class=""pagination"""

  if margin <> "" OR padding <> "" then

  pagination = pagination &  " style="""

  if margin <> "" then

  pagination = pagination &  "margin: margin"

  end if

  if padding <> "" then

  pagination = pagination &  "padding: padding"

  end if

  pagination = pagination &  """"

  end if

  pagination = pagination &  ">"

  'previous button

  if page > 1 then

  pagination = pagination &  "<a href="""&targetpage&"&page="&prev&""">Prev</a>"

  else

  pagination = pagination &  "<span class=""disabled"">Prev</span>"

  end if

  'pages

  if lastpage < 7 + (adjacents * 2) then 'not enough pages to bother breaking it up

  for counter = 1 to lastpage

  if counter = page then

  pagination = pagination &  "<span class=""current"">"&counter&"</span>"

  else

  pagination = pagination &  "<a href="""&targetpage&""&"&page="&counter&""">"&counter&"</a>"

  end if

  next

  elseif lastpage >= 7 + (adjacents * 2) then 'enough pages to hide some

  'close to beginning only hide later pages

  if page < 1 + (adjacents * 3) then

  for counter = 1 to (4 + (adjacents * 2))-1

  if counter = page then

  pagination = pagination &  "<span class=""current"">"&counter&"</span>"

  else

  pagination = pagination &  "<a href="""&targetpage&"&page="&counter&""">"&counter&"</a>"

  end if

  next

  pagination = pagination &  "..."

  pagination = pagination &  "<a href="""&targetpage&""&"&page="&lpm1&""">"&lpm1&"</a>"

  pagination = pagination &  "<a href="""&targetpage&""&"&page="&lastpage&""">"&lastpage&"</a>"

  'in middle hide some front and some back

  elseif lastpage - (adjacents * 2) > page AND page > (adjacents * 2) then

  pagination = pagination &  "<a href="""&targetpage&"&page=1"">1</a>"

  pagination = pagination &  "<a href="""&targetpage&"&page=2"">2</a>"

  pagination = pagination &  "..."

  for counter = (page - adjacents) to (page + adjacents)

  if counter = page then

  pagination = pagination &  "<span class=""current"">"&counter&"</span>"

  else

  pagination = pagination &  "<a href="""&targetpage&"&page="&counter&""">"&counter&"</a>"

  end if

  next

  pagination = pagination &  "..."

  pagination = pagination &  "<a href="""&targetpage&"&page="&lpm1&""">"&lpm1&"</a>"

  pagination = pagination &  "<a href="""&targetpage&"page="&lastpage&""">"&lastpage&"</a>"

  'close to end only hide early pages

  else

  pagination = pagination &  "<a href="""&targetpage&"&page=1"">1</a>"

  pagination = pagination &  "<a href="""&targetpage&"&page=2"">2</a>"

  pagination = pagination &  "..."

  for counter = (lastpage - (1 + (adjacents * 3))) To lastpage

  if counter = page then

  pagination = pagination &  "<span class=""current"">"&counter&"</span>"

  else

  pagination = pagination &  "<a href="""&targetpage&"&page="&counter&""">"&counter&"</a>"

  end if

  next

  end if

  end if

  'nextPage button

  if page < counter - 1 then

  pagination = pagination &  "<a href="""&targetpage&"&page="&nextPage&""">Next</a>"

  else

  pagination = pagination &  "<span class=""disabled"">Next</span>"

  end if

  pagination = pagination &  "</div>" & vbnewline

  end if

  getPaginationString = pagination

  end function

  function Ceil( dividend, divider)

  if (dividend mod divider) = 0 Then

  Ceil = dividend / divider

  ELSE

  Ceil = Int(dividend / divider) + 1

  End if

  End function

  'test script code

  page = 1

  if request("page") <> "" then

  page=cint(request("page"))

  end if

  ps = getPaginationString(page, 1500, 15, 2, "pagination.asp?foo=bar")

  Response.Write("<br /><br /><br /><br /><br /><br /><br /><br />"&ps)

  %>

  完整打包代码:pagination(glzy8.com).rar

  看了有些头晕,还是看点简单的吧,asp与php思想差不多啊,参考了dedecms的修改方法

  效果图:

ASP 数字分页效果代码

  核心代码:

  

复制代码 代码如下:

  ps=cint(pageno)-2

  if ps<1 then

  ps=1

  end if

  pe=clng(pageno)+5

  if pe>mpage then pe=mpage

  for i=ps to pe

  if i=pageno then

  lb=lb&"<strong>"&i&"</strong>"

  else

  lb=lb&"<a href=""/list/list_"&theid&"_"&i&".htm"">"&i&"</a>"

  end if

  next

  完整代码:

  

复制代码 代码如下:

  pageno=cint(currentPage)

  if cint(pageno)>1 then

  lb=lb&"<a href=/list/list_"&theid&"_1.htm title=""首页"">首页</a>"

  else

  lb=lb&"<a href='#'>首页</a>"

  end if

  if cint(pageno)>1 and cint(pageno) then

  lb=lb&"<a href=/list/list_"&theid&"_"&pageno-1&".htm title=""上页"">上页</a>"

  else

  lb=lb&"<a href='#'>上页</a>"

  end if

  ps=cint(pageno)-2

  if ps<1 then

  ps=1

  end if

  pe=clng(pageno)+5

  if pe>mpage then pe=mpage

  for i=ps to pe

  if i=pageno then

  lb=lb&"<strong>"&i&"</strong>"

  else

  lb=lb&"<a href=""/list/list_"&theid&"_"&i&".htm"">"&i&"</a>"

  end if

  next

  if cint(pageno)<mpage and mpage>1 then

  lb=lb&"<a href=/list/list_"&theid&"_"&pageno+1&".htm title=""下页"">下页</a>"

  else

  lb=lb&"<a href='#'>下页</a>"

  end if

  if cint(pageno)< mpage then

  lb=lb&"<a href=/list/list_"&theid&"_"&mpage&".htm title=""末页"">末页</a>"

  end if