人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當(dāng)前位置:蘿卜系統(tǒng)下載站 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

VBscript 類的設(shè)計(jì)(二)

VBscript 類的設(shè)計(jì)(二)

更新時(shí)間:2022-06-30 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

忙著找工作,直到周末才有空,F(xiàn)在來繼續(xù)我們的vbscript類的設(shè)計(jì)。上一次我們已經(jīng)設(shè)計(jì)出了一個(gè)簡單的日期類,但是還存在一些使用

上的問題,F(xiàn)在我們針對(duì)這些問題來更改我們的設(shè)計(jì)。這次我們要解決的問題是:
1、如果用戶指定的classdate不是日期型,那么日期就會(huì)變成1900年1月1日;
2、如果顯示多個(gè)日期,表單對(duì)象的名字不能是一樣的;
3、最好加入CSS;
下面分別討論
一、在上一次我們?cè)O(shè)計(jì)的dataclass 里,我們定義了一個(gè)public型的變量 classdate 來表示日期,用戶可以自由地對(duì)classdate 進(jìn)行值和

讀取,這樣就無法判斷用戶所賦的值是不是正確的了。現(xiàn)在我們把重定義一個(gè)變量 cldate 改成 private 型,這樣用戶就無法直接訪問cldate

了。如下:
private cldate

為了能夠讓用戶訪問到classdate,上一次提到了 property ,現(xiàn)在我們就用它來構(gòu)造二個(gè)函數(shù),一個(gè)是讓用戶對(duì)classdate

賦值的函數(shù),叫classdate。定義如下:
pbulic property let classdate(fdate)
...
end property

另一個(gè)函數(shù)是讓用戶讀取cldate,定義如下:
public property get classdate()
...
end property

好,定義好函數(shù)后,就可以來寫代碼了,在 let classdate 里,主要是判斷用戶輸入的是不是日期型,如下:
public property let classdate(fdate)
if typename(fdate)="Date" then
cldate=fdate
end if
end property

在 get classdate 里,主要是把cldate 的值賦給函數(shù):如下:
public property get classdate()
classdate=cldate
end property



如果沒有給clname賦值呢?也就是當(dāng)這個(gè)類剛生成的時(shí)候,clname是個(gè)空值,這里介紹一下類初始化和終止時(shí)的自動(dòng)進(jìn)程:clas_initialize

和 class_terminate。第一個(gè)進(jìn)程是生成類里自動(dòng)執(zhí)行的,第二個(gè)是類消滅時(shí)自動(dòng)執(zhí)行的。這里只要用到第一個(gè)進(jìn)程。如下:
private sub class_initialize()
cldate=now()
end private

這樣,類生成的時(shí)候,如果沒有對(duì)clname賦值,那么clname就是當(dāng)前的日期。

二、為了在表單里顯示出多個(gè)日期,我們要區(qū)分每次生成的日期對(duì)象,也就是取個(gè)名字。在這里我們定義一個(gè)private型的變量 clname 來

定義生成的表單控件的名字。定義如下:
private clname

同樣的,要讓用戶能訪問到clname變量,也要定義兩個(gè)函數(shù),方法和classdate的相同。代碼如下:
public property let classname(fname)
if fname<>"" then
clname=fname
end if
end property

public property get classname()
classname=clname
end property

在每次顯示表單日期控件的時(shí)候,要給控件加上名字,我們分別將年、月、日命名為:
clname & "_year"
clname & "_month"
clname & "_day"
同樣的,我們讓clname默認(rèn)為"datename",也就是在class_initialize里加上代碼,改進(jìn)后的class_initialize如下:
private sub class_initialize()
cldate=now()
clname="datename"
end private

為了讓每次顯示日期后clname的值不同,我們?cè)赾lname后面加上數(shù)字來區(qū)別。這里我們引入一個(gè)private變量clcount,生成類時(shí),clcount

的值為“0”,如果對(duì)clname賦值,那么clcount又置為0代碼如下:
private clcount

private sub class_initialize()
cldate=now()
clname="datename"
clcount=0
end sub

public property let classname(fname)
if fname<>"" then
clname=fname
clcount=0
end if
end property

三、最后,我們引入一個(gè)private變量clcss來定義表單控件的CSS。只要提供賦值的函數(shù)就可以了,讀取CSS在這里沒什么用。代碼如下:
private clcss

public property let classcss(fcss)
if fcss<>"" then
clcss=fcss
end if
end property

四、好,現(xiàn)在要來修改顯示日期函數(shù)了,每次顯示后讓clcount的值加1。修改后的文件保存為dateclass2.asp,完整代碼如下:
<%
class dateclass

'定義變量
private cldate
private clname
private clcount
private clcss

'初始化
private sub class_initialize()
cldate=date()
clname="datename"
clcount=0
end sub

'訪問cldate
public property let classdate(fdate)
if typename(fdate)="Date" then
cldate=fdate
end if
end property

public property get classdate()
classdate=cldate
end property

'訪問clname
public property let classname(fname)
if fname<>"" then
clname=fname
clcount=0
end if
end property

public property get classname()
classname=clname
end property

'訪問clcss
public property let classcss(fcss)
if fcss<>"" then
clcss=fcss
end if
end property

'修改后的顯示日期函數(shù)
public function datedisplay()
'給顯示的表單控件自動(dòng)編號(hào)
if clcount>0 then
cname=clname & cstr(clcount-1)
else
cname=clname
end if
yy=year(classdate)
mm=month(classdate)
dd=day(classdate)
response.write "<input type='text' name='" & cname & "_year' size='4'" &_
" class='" & clcss & "' maxlength='4' value='" &_
yy & "'>年" & vbcrlf
response.write "<select class='" & clcss & "' name='" &_
cname &"_month'>" & vbcrlf
for i=1 to 12
if i=mm then
response.write "<option value='"&i&"' selected>"&i&"</option>" & vbcrlf
else
response.write "<option value='"&i&"'>"&i&"</option>" & vbcrlf
end if
next
response.write "</select>月" & vbcrlf
response.write "<select class='" & clcss & "' name='" & cname & "_day'>" & vbcrlf
for i=1 to 31
if i=dd then
response.write "<option value='"&i&"' selected>"&i&"</option>" & vbcrlf
else
response.write "<option value='"&i&"'>"&i&"</option>" & vbcrlf
end if
next
response.write "</select>日" & vbcrlf

clcount=clcount+1
end function

end class
%>

五、調(diào)試。只要把上一次的test1.asp稍加修改就可以了,如下:
<!--#include file="dateclass2.asp" -->
<%
br="<br>"
set newdate= new dateclass
response.write "調(diào)用顯示:" & br
response.write "生成的控件名是:"& newdate.classname &br
newdate.datedisplay
response.write br
newdate.datedisplay
response.write br & "顯示classdate的值:"
response.write newdate.classdate
response.write br & "設(shè)置classdate的值為“2005/6/15”:" & br
newdate.classdate=cdate("2005/6/15")
response.write br & "設(shè)置名字為“mydate”:" & br
newdate.classname="mydate"
response.write "再調(diào)用顯示:" & br
response.write br & "生成的控件名是:"& newdate.classname &br
newdate.datedisplay
response.write br & "生成控件:"&br
newdate.datedisplay
set newdate=nothing
%>

注意賦日期的用法,生成的控件的名字,可以查看源代碼。還有一個(gè)CSS的測(cè)試,就留給朋友們自己去做吧。

溫馨提示:喜歡本站的話,請(qǐng)收藏一下本站!

本類教程下載

系統(tǒng)下載排行

網(wǎng)站地圖xml | 網(wǎng)站地圖html
主站蜘蛛池模板: 丰台区| 甘谷县| 青州市| 丰原市| 扶绥县| 博湖县| 静安区| 莲花县| 寿阳县| 达日县| 广州市| 崇礼县| 德钦县| 开远市| 鄢陵县| 中西区| 阿鲁科尔沁旗| 永丰县| 拜泉县| 河曲县| 盐亭县| 霍城县| 宁安市| 浑源县| 梨树县| 锡林郭勒盟| 天等县| 孟州市| 东方市| 灵宝市| 长海县| 鄂温| 宜宾市| 增城市| 霍州市| 嘉禾县| 马鞍山市| 容城县| 芒康县| 新乡市| 青阳县|