Phân trang với đối t−ợng RecordSet:

Một phần của tài liệu DCTKWeb.pdf (Trang 113 - 115)

Đối t−ợng RecordSet cung cấp 3 thuộc tính quan trọng sau để sử dụng phân trang:

PageSize: Kích th−ớc bản ghi trong một trang PageCount: Tổng số trang RecordSet truy vấn đ−ợc

AbsolutePage: Chỉ định trang hiện hành đang cần đ−ợc đọc

Để RecordSet có khả năng phân trang, cần thiết lập thêm tham số cho RecordSet tr−ớc khi thực hiện truy vấn:

Rs.CursorLocation=3 ‘ Có thể sử dụng hằng adUseClient Rs.PageSize=15 ‘ 15 bản ghi trong một trang

Tiết theo mở đối t−ợng RecordSet truy vấn dữ liệu với tuỳ chọn là các hằng adOpenForwardOnly(0), adLockReadOnly (1) truy cho ph−ơng thức Open nh− sau:

Rs.open sqlStr, Conn, 0,1

Công việc sau cùng là định vị trang thông qua thuộc tính AbsolutePage. Ta l−u lại vị trí hiện hành của trang dữ liệu thông qua giá trị chứa trong thẻ <input hidden>. Giá trị này sẽ đ−ợc chuyển về trình chủ mỗi khi ng−ời dùng kích vào.

Xét ví dụ sau:

<%sqlStr="SELECT * FROM Products " ' page navigate session here ... Dim lCurrentPage

Dim lPageCount

lCurrentPage = CLng(Request("page")) If lCurrentPage < 1 Then

lCurrentPage = 1 End If

rs.CursorLocation = 3 rs.PageSize = 15

rs.Open sqlStr, conn, 0, 1 'Const adOpenForwardOnly=0, adLockReadOnly = 1

lPageCount = rs.PageCount

If lCurrentPage > lPageCount Then lCurrentPage = lPageCount End If

if not rs.eof then

rs.AbsolutePage = lCurrentPage end if

call ShowPageNavigation(lCurrentPage,lPageCount)

Do While rs.AbsolutePage = lCurrentPage And Not rs.Eof Response.write rs("ProductName")

rs.movenext loop %>

<form name="viewFrm" >

<input type=hidden name=page > </form>

<%

Sub ShowPageNavigation (lCurrentPage,lPageCount) If lCurrentPage <> 1 AND lCurrentPage <> 0 Then %>

<A HREF="javascript:setValue('<%= lCurrentPage - 1 %>'); ">Previous

<% Else %> Previous <% End If%>

<%If lCurrentPage < lPageCount Then%>

<A HREF="javascript:setValue('<%= lCurrentPage + 1%>'); ">Next <% Else %> Next <% End If%><BR> Page <B> <%= lCurrentPage%> </B> <%= lPageCount%> <%End Sub %> <script language=javascript> function setValue(page){

viewFrm.page.value= page; viewFrm.submit(); (adsbygoogle = window.adsbygoogle || []).push({});

} </script>

Một phần của tài liệu DCTKWeb.pdf (Trang 113 - 115)