|
在写一个分页类的时候,碰到一个很巧妙的类对象引用传递的问题,如果我这里解释是怎么一回事可能大家很难看清楚,不如看代码
其中使用到一个分页类CPaging 复制代码 代码如下: Class CPaging Public RS ' RecordSet对象 Public Mark ' 指针标签 Private sSize ' 每页显示数 Private sTotal ' 总记录数 Private sPage ' 当前页码 Private sCount ' 总页码 Private Sub Class_Initialize sSize = 20 sPage = 1 sCount = 1 End Sub Private Sub Class_Terminate Closeobj RS End Sub '每页显示数 Property Let Size(Value) sSize = Value End Property Property Get Size Size = sSize End Property '当前页码 Property Let Page(Value) If Not IsNumeric(Value) Then sPage = 1 Else sPage = Value End If End Property Property Get Page If (sPage - 1) * sSize > sTotal Then If sTotal Mod sSize = 0 Then Page = Total \ sSize Else Page = Total \ sSize +1 End If ElseIf sPage < 1 Then Page = 1 Else Page = sPage End If End Property '总页码 Property Get Count If sTotal Mod sSize = 0 Then Count = sTotal \ sSize Else Count = sTotal \ sSize + 1 End If End Property '总记录数 Property Get Total() Total = sTotal End Property Public Function Open(Byval SQLString) Try DB.Openquery(RS,SQLString) sTotal = RS.RecordCount End Function End Class
以下是调用页 复制代码 代码如下: Dim Products Set Products = New CPaging With Products .Size = 15 '每页显示数 .Page = PageNum '当前页 End With Try Products.Open(ListSQL) If Products.RS.Bof and Products.RS.Eof then Response.Write("<TR><TD colspan=8>查找无记录</TD></TR>") Else Dim i i = 0 Products.RS.Move (Products.Page - 1) * Products.Size Do While Not Products.RS.Eof Response.Write("<TR onmouseup=MouseUp(this); onmousedown=MouseDown(this); onmouseover=MouseOver(this); onclick=Click(this); onmouseout=MouseOut(this);>"&vbCrLf) Response.Write("<TD align=middle nowrap>" & Products.RS("ProductsClassName") & "</TD>"&vbCrLf) Response.Write("<TD align=left nowrap>" & Products.RS("ProductsName") & " </TD>"&vbCrLf) Response.Write("</TR>"&vbCrLf) i=i+1 If i >= Products.Size Then Exit Do Products.RS.MoveNext Loop End If 当看到第8行的时候,似乎窥到了.net的影子--命名空间? |
|