|
VBScripts Class in ASP
<%@ Language=VBScript %>
<% option explicit %>
<html>
<head>
</head>
<body>
<%
Dim aSessionID
aSessionID=CStr(Session.SessionID)
Class User
Private m_ID
Private mLastName
Private mFirstName
Private dTelephones
Private sub Class_Initialize()
Response.Write "User Initialize<br>"
Dim arr
Dim i
Dim aTelephone
Set dTelephones =Server.Create0bject("Scripting.Dictionary")
m_ID = aSessionID
If Not IsEmpty(Session(aSessionID)) Then
arr = Session(aSessionID)
mLastName = arr(0)
mFirstName = arr(1)
For i = 2 To UBound(arr) Step 2
dTelephones.Add arr(i), arr(i + 1)
Next
Else
mLastName = " "
mFirstName = " "
Set dTelephones = Server.Create0bject("Scripting.Dictionary")
End If
End Sub
Private Sub Class_terminate()
Response.Write "User terminate<br>"
Dim arr
Dim i
Dim j
Dim V
arr = Array()
ReDim arr(1)
arr(0) = mLastName
arr(1) = mFirstName
i = UBound(arr)
For Each V In dTelephones.keys
i = i + 1
ReDim Preserve arr(i)
arr(i) = V
i = i + 1
ReDim Preserve arr(i)
arr(i) = dTelephones(V)
Next
Session(aSessionID) = arr
Set dTelephones = Nothing
End Sub
Public Property Let LastName(s)
mLastName = s
End Property
Public Property Get LastName()
LastName = mLastName
End Property
Public Property Let FirstName(s)
mFirstName = s
End Property
Public Property Get FirstName()
FirstName = mFirstName
End Property
Public Sub addTelephone(atype, anumber)
If dTelephones.Exists(atype) Then
Response.Write "This person already has " & _
"a phone of type " & atype & "<br>"
Response.end
Else
dTelephones.Add atype, anumber
Response.Write "Added telephone " & atype &
", & anumber & "<br>"
End If
End Sub
Public Property Get PhoneInfo()
Dim V
Dim s
For Each V In dTelephones.keys
s = s & V & "=" & dTelephones(V) &
"<br>"
Next
PhoneInfo = s
End Property
Public Property Get PhoneCount()
PhoneCount = dTelephones.Count
End Property
end class
Dim aUser
Dim i
If IsEmpty(Session(aSessionID)) Then
Response.Write "Initializing new user" &
"<br>" Set aUser = New User
aUser.LastName = "Russell"
aUser.FirstName = "Jones"
Call aUser.addTelephone("Home",
"111-111-1111")
Else
Response.Write "Found User:<br>"
Set aUser = New User
End If
'Response.Write "SessionID = " & aSessionID &
"<br>"
If Request.Form("Add") = "Add" Then
aUser.addTelephone CStr(Request.Form.Item("PhoneType")),
CStr(Request.Form.Item("PhoneNumber"))
End If
With aUser
Response.Write "<b>User Info:</b><br>"
Response.Write "LastName=" & .LastName &
"<br>" Response.Write "FirstName="
& .FirstName & "<br>" Response.Write
"PhoneCount=" & .PhoneCount &
"<Br>" Response.Write
"<b>Phones:</b><br>" & .PhoneInfo
End With
%>
<form name="frmTel" method="post"
action="">
<table width="60%" align="center"
border="1">
<tr>
<td colspan="2">
Add a phone number:
</td>
</tr>
<tr>
<td>
<b>Type:</b>
</td>
<td> <input type="text" name="PhoneType">
</td>
</tr>
<tr>
<td>
<b>Number:</b>
</td>
<td> <input type="text" name="PhoneNumber">
</td>
</tr>
<tr>
<td colspan="2" align="center">
<input name="Add" type="submit"
value="Add">
</td>
</tr>
</table>
<br>
</form>
</body>
</html>
|