asp偽繼承初探_實(shí)例代碼
更新時(shí)間:2008年10月01日 00:18:56 作者:
在寫一個(gè)分頁(yè)類的時(shí)候,碰到一個(gè)很巧妙的類對(duì)象引用傳遞的問題,如果我這里解釋是怎么一回事可能大家很難看清楚,不如看代碼
其中使用到一個(gè)分頁(yè)類CPaging
Class CPaging
Public RS ' RecordSet對(duì)象
Public Mark ' 指針標(biāo)簽
Private sSize ' 每頁(yè)顯示數(shù)
Private sTotal ' 總記錄數(shù)
Private sPage ' 當(dāng)前頁(yè)碼
Private sCount ' 總頁(yè)碼
Private Sub Class_Initialize
sSize = 20
sPage = 1
sCount = 1
End Sub
Private Sub Class_Terminate
Closeobj RS
End Sub
'每頁(yè)顯示數(shù)
Property Let Size(Value)
sSize = Value
End Property
Property Get Size
Size = sSize
End Property
'當(dāng)前頁(yè)碼
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
'總頁(yè)碼
Property Get Count
If sTotal Mod sSize = 0 Then
Count = sTotal \ sSize
Else
Count = sTotal \ sSize + 1
End If
End Property
'總記錄數(shù)
Property Get Total()
Total = sTotal
End Property
Public Function Open(Byval SQLString)
Try DB.Openquery(RS,SQLString)
sTotal = RS.RecordCount
End Function
End Class
以下是調(diào)用頁(yè)
Dim Products
Set Products = New CPaging
With Products
.Size = 15 '每頁(yè)顯示數(shù)
.Page = PageNum '當(dāng)前頁(yè)
End With
Try Products.Open(ListSQL)
If Products.RS.Bof and Products.RS.Eof then
Response.Write("<TR><TD colspan=8>查找無(wú)記錄</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
當(dāng)看到第8行的時(shí)候,似乎窺到了.net的影子--命名空間?
復(fù)制代碼 代碼如下:
Class CPaging
Public RS ' RecordSet對(duì)象
Public Mark ' 指針標(biāo)簽
Private sSize ' 每頁(yè)顯示數(shù)
Private sTotal ' 總記錄數(shù)
Private sPage ' 當(dāng)前頁(yè)碼
Private sCount ' 總頁(yè)碼
Private Sub Class_Initialize
sSize = 20
sPage = 1
sCount = 1
End Sub
Private Sub Class_Terminate
Closeobj RS
End Sub
'每頁(yè)顯示數(shù)
Property Let Size(Value)
sSize = Value
End Property
Property Get Size
Size = sSize
End Property
'當(dāng)前頁(yè)碼
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
'總頁(yè)碼
Property Get Count
If sTotal Mod sSize = 0 Then
Count = sTotal \ sSize
Else
Count = sTotal \ sSize + 1
End If
End Property
'總記錄數(shù)
Property Get Total()
Total = sTotal
End Property
Public Function Open(Byval SQLString)
Try DB.Openquery(RS,SQLString)
sTotal = RS.RecordCount
End Function
End Class
以下是調(diào)用頁(yè)
復(fù)制代碼 代碼如下:
Dim Products
Set Products = New CPaging
With Products
.Size = 15 '每頁(yè)顯示數(shù)
.Page = PageNum '當(dāng)前頁(yè)
End With
Try Products.Open(ListSQL)
If Products.RS.Bof and Products.RS.Eof then
Response.Write("<TR><TD colspan=8>查找無(wú)記錄</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
當(dāng)看到第8行的時(shí)候,似乎窺到了.net的影子--命名空間?
相關(guān)文章
ASP把長(zhǎng)的數(shù)字用逗號(hào)隔開顯示的代碼
對(duì)于一些比較長(zhǎng)的數(shù)字,我們可以用asp實(shí)現(xiàn)隔開顯示,尤其是一些金錢相關(guān)的東西2008-06-06隨機(jī)提取Access/SqlServer數(shù)據(jù)庫(kù)中的10條記錄的SQL語(yǔ)句
隨機(jī)提取Access/SqlServer數(shù)據(jù)庫(kù)中的10條記錄的SQL語(yǔ)句...2006-07-07asp偽靜態(tài)情況下實(shí)現(xiàn)的utf-8文件緩存實(shí)現(xiàn)代碼
該程序通過使用ASP的FSO功能,減少數(shù)據(jù)庫(kù)的讀取。經(jīng)測(cè)試,可以減少90%的服務(wù)器負(fù)荷。頁(yè)面訪問速度基本與靜態(tài)頁(yè)面相當(dāng)。2011-01-01推薦4款傻瓜型的ASP服務(wù)器軟件(asp運(yùn)行環(huán)境一鍵搭建工具)
雖然現(xiàn)在各種語(yǔ)言大行其道,但是asp的成熟性以及易用性還是有很大的客戶量存在,要運(yùn)行ASP程序,必須安裝調(diào)試ASP的環(huán)境,而IIS對(duì)于普通用戶來說,安裝起來還是有一定的難度的,這里我來推薦幾款傻瓜型的ASP服務(wù)器軟件,比較適合初級(jí)站長(zhǎng)。2014-08-08