前端

img singlr

asp伪继承初探

发表于2008/9/30 23:02:00  299人阅读

        在写一个分页类的时候,碰到一个很巧妙的类对象引用传递的问题,如果我这里解释是怎么一回事可能大家很难看清楚,不如看代码

其中使用到一个分页类CPaging

 

 

 

  1. Class CPaging
  2.     
  3.     Public RS       ' RecordSet对象
  4.     Public Mark         ' 指针标签
  5.     
  6.     
  7.     Private sSize       ' 每页显示数
  8.     Private sTotal      ' 总记录数
  9.     Private sPage       ' 当前页码
  10.     Private sCount      ' 总页码
  11.     
  12.     
  13.     Private Sub Class_Initialize
  14.         sSize       = 20
  15.         sPage       = 1
  16.         sCount      = 1
  17.     End Sub
  18.     
  19.     Private Sub Class_Terminate
  20.         
  21.         Closeobj RS
  22.         
  23.     End Sub
  24.     
  25.     '每页显示数
  26.     Property Let Size(Value)
  27.         sSize = Value
  28.     End Property
  29.     
  30.     Property Get Size
  31.         Size = sSize
  32.     End Property
  33.     
  34.     '当前页码
  35.     Property Let Page(Value)
  36.         If  Not IsNumeric(Value) Then
  37.             sPage = 1
  38.         Else
  39.             sPage = Value
  40.         End If
  41.     End Property
  42.     
  43.     Property Get Page
  44.         If (sPage - 1) * sSize > sTotal Then
  45.             If sTotal Mod sSize = 0 Then
  46.                 Page = Total / sSize
  47.             Else
  48.                 Page = Total / sSize +1
  49.             End If
  50.         ElseIf sPage < 1 Then
  51.             Page = 1
  52.         Else
  53.             Page = sPage
  54.         End If
  55.     End Property
  56.     
  57.     '总页码
  58.     Property Get Count
  59.         If sTotal Mod sSize = 0 Then    
  60.             Count = sTotal / sSize
  61.         Else
  62.             Count = sTotal / sSize + 1
  63.         End If
  64.     End Property
  65.     
  66.     '总记录数
  67.     Property Get Total()
  68.         Total = sTotal
  69.     End Property
  70.     
  71.     Public Function Open(Byval SQLString)
  72.         Try DB.Openquery(RS,SQLString)
  73.         sTotal = RS.RecordCount
  74.     End Function
  75.     
  76. End Class

以下是调用页

 

 

  1.     Dim Products
  2.     Set Products = New CPaging
  3.     With Products
  4.         .Size = 15                                  '每页显示数
  5.         .Page = PageNum                             '当前页
  6.     End With
  7.     Try Products.Open(ListSQL)
  8.     If Products.RS.Bof and Products.RS.Eof then
  9.         Response.Write("<TR><TD colspan=8>查找无记录</TD></TR>")
  10.     Else
  11.         Dim i
  12.         i = 0
  13.         Products.RS.Move (Products.Page - 1) * Products.Size
  14.         Do While Not Products.RS.Eof
  15.         Response.Write("<TR onmouseup=MouseUp(this); onmousedown=MouseDown(this); onmouseover=MouseOver(this); onclick=Click(this); onmouseout=MouseOut(this);>"&vbCrLf)
  16.         Response.Write("<TD align=middle nowrap>" & Products.RS("ProductsClassName") & "</TD>"&vbCrLf)
  17.         Response.Write("<TD align=left nowrap>" & Products.RS("ProductsName") & " </TD>"&vbCrLf)
  18. Response.Write("</TR>"&vbCrLf)
  19.         i=i+1
  20.         If i >= Products.Size Then Exit Do
  21.         Products.RS.MoveNext
  22.         Loop
  23.     End If

        当看到第8行的时候,似乎窥到了.net的影子--命名空间?

        

阅读全文
0 0

相关文章推荐

img
取 消
img