Saturday, April 26, 2008
Phân trang RecordSet:
Khi select => cho kết quả 1 bảng gồm nhiều hàng. Tuy nhiên mỗi lần chỉ muốn sử dụng một vài hàng, ví dụ: bảng 50 hàng, mỗi lần hiển thị 10 hàng => sử dụng kỹ thuật paging. ADO cung cấp các thuộc tính của Recordset như: PageSize, PageCount, AbsolutePage.
PageCount: số trang, PageSize: số hàng.
ở đây ta dùng biến session CurrentPage để ghi nhận trang hiện hành.
<% Select Case Request.QueryString("Direction")
Case "" 'Null
Session("CurrentPage") = 1
Case "Next"
Session("CurrentPage") = Session("CurrentPage") + 1
Case "Previous"
Session("CurrentPage") = Session("CurrentPage") - 1
End Select %>
Chú ý: Request.QueryString("Direction") <=> QueryString("Direction")
Tiến hành kết nối truy vấn dữ liệu
<% const adOpenKeySet = 1 dim objConnection [i]'không cần khai báo cũng được[/i] dim objRexordset [i]'không cần khai báo cũng được[/i] Set objConnection = Server.CreateObject("ADODB.Connection") Set ObjConnection.Open "Biblio", "", "" Dim strSQL StrSQL = "Select * from Authors" Set objRecordSet = Server.CreateObject("ADODB.RecordSet") ObjRecordSet.PageSize = 10 ObjRecordSet.Open strSQL, objConnection, adOpenKeyset ObjRecordSet.AbsolutePage = CLng(Session("CurrentPage")) %>
Page = <%=Session("CurrentPage") %> of <%=ObjRecordSet.PageCount>
<% Dim i For i = 1 to ObjRecordSet.PageSize %>
<% = ObjRecordSet("Authors") %>
...
<% ObjRecordSet.MoveNext Next %>
<% if CLng(Session("CurrentPage")) <>
A HREF = "paging.asp?Direction=Next">Next Page
<%Enf if%>
<% If CLng(Session("CurrentPage")) > 1 then %>
A Href = "paging.asp?Direction=Previous">Previous Page
<%Enf if%>
<% ObjRecordSet.close ObjConnection.close Set objRecordSet = nothing Set objConnection = nothing %>
Labels: ASP
0 Comments:
Subscribe to:
Post Comments (Atom)