天天看點

CDSN上一頁下一頁功能模仿

CDSN上一頁下一頁功能模仿

從背景讀取記錄,如果資料過多,就需要劃分多頁去顯示,本章就是模仿CDSN來實作該功能的,采用asp動态語言實作的,求噴我,css這部分我完全是copy過來的,隻改了一點,我主要完成的是asp後面的代碼。本章也是做一個記錄,友善後面項目中使用,如上圖所示。

建立pagelist.css檔案:

/* CSS Document */
.pagelist{clear:both;padding:15px 0;color:#666;font:normal 12px/24px Arial;text-align:center}
.pagelist a{display:inline-block;height:22px;margin:0 2px;padding:0 8px;border:solid 1px #dbe5ee;background:#fff;color:#333;font:normal 12px/22px Arial,Helvetica,sans-serif;cursor:pointer;text-decoration : none;}
.pagelist strong{display:inline-block;height:24px;margin:0 3px;padding:0 8px;border:0;background:#07519a;color:#fff;font-weight:normal;line-height:24px;text-decoration:none}
.pagelist a:hover{height:24px;margin:0 3px;border:0;background:#07519a;color:#fff;line-height:24px;text-decoration:none}
.pagelist a.select{cursor:default}
           

建立main.css檔案:

<!DOCTYPE>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>上一頁 下一頁</title>
</head>
<link rel="stylesheet" type="text/css" href="pagelist.css" target="_blank" rel="external nofollow"  />
<body>
	<%@LANGUAGE='VBSCRIPT' CODEPAGE='65001'%>
	<div class="pagelist">
	<%
		dim page,startPos,endPos
		dim url
		url = "main.asp?page="
		page = cint(request.QueryString("page"))
		set conn=Server.CreateObject("ADODB.Connection")
		conn.open"provider=microsoft.jet.oledb.4.0;data source="&server.mappath("info.mdb")
		set rs=server.createobject("adodb.recordset")
		sql = "select * from client"
		rs.open sql,conn,1,3
		rs.pagesize = 2							'每頁有多少資料,這裡設定為2主要是友善測試
		allpage = rs.pagecount					'一共有多少頁
		if page < 1 then page = 1
		if page > allpage then page = allpage
		rs.absolutepage=page
		response.Write("<span> " & cstr(rs.recordcount) & "條資料  共" & cstr(allpage) & "頁" & "</span>" + vbcrlf)
		if page > 1 then
			response.Write("<a href = " & url & "1" &">首頁</a>" + vbcrlf)
			response.Write("<a href = " & url & cstr(page - 1) &">上一頁</a>" + vbcrlf)
		end if
		startPos = page - 3						'該數字可以更改,自己試試看,我就不表達了,意會就行了
		endPos = page + 3
		if startPos < 1 then
			startPos = 1
		elseif startPos > 1 then
			response.Write("<a href = " & url & cstr(startPos - 1) & ">...</a>" + vbcrlf)
		end if
		if endPos > allpage then
			endPos = allpage
		end if
		for i = startPos to endPos
			if i = page then
				response.Write("<strong>" & cstr(i) & "</strong>")
			else
				response.Write("<a href = " & url & cstr(i) & ">" & cstr(i) & "</a>" + vbcrlf)
			end if
		next
		if endPos < allpage then
			response.Write("<a href = " & url & cstr(endPos + 1) & ">...</a>" + vbcrlf)
		end if
		if page <> allpage then
			response.Write("<a href = " & url & cstr(page + 1) &">下一頁</a>" + vbcrlf)
			response.Write("<a href = " & url & cstr(allpage) &">尾頁</a>" + vbcrlf)
		end if
		rs.close
		conn.close
	%>	
	</div>
</div>
</body>
</html>
           

這裡還需要建立名字為info.mdb的access資料庫,在裡面添加client的表,添加user字段。

繼續閱讀