asp偽繼承初探_實例代碼
更新時間:2008年10月01日 00:18:56 作者:
在寫一個分頁類的時候,碰到一個很巧妙的類對象引用傳遞的問題,如果我這里解釋是怎么一回事可能大家很難看清楚,不如看代碼
其中使用到一個分頁類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的影子--命名空間?
復制代碼 代碼如下:
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的影子--命名空間?
相關文章
隨機提取Access/SqlServer數據庫中的10條記錄的SQL語句
隨機提取Access/SqlServer數據庫中的10條記錄的SQL語句...2006-07-07asp偽靜態(tài)情況下實現的utf-8文件緩存實現代碼
該程序通過使用ASP的FSO功能,減少數據庫的讀取。經測試,可以減少90%的服務器負荷。頁面訪問速度基本與靜態(tài)頁面相當。2011-01-01推薦4款傻瓜型的ASP服務器軟件(asp運行環(huán)境一鍵搭建工具)
雖然現在各種語言大行其道,但是asp的成熟性以及易用性還是有很大的客戶量存在,要運行ASP程序,必須安裝調試ASP的環(huán)境,而IIS對于普通用戶來說,安裝起來還是有一定的難度的,這里我來推薦幾款傻瓜型的ASP服務器軟件,比較適合初級站長。2014-08-08