I need to use class structure in classic asp. I have written following three classes.
Category.asp
<%
Class Category
Private NameVar
Public Property Get Name()
Name = NameVar
End Property
Public Property Let Name(nameParam)
NameVar = nameParam
End Property
End Class
%>
Item.asp
<%
Class Item
Private NameVar
Private CategoryVar
Public Property Get Name()
Name = NameVar
End Property
Public Property Let Name(nameParam)
NameVar = nameParam
End Property
Public Property Get Category()
category = categoryVar
End Property
Public Property Let Category(categoryParam)
CategoryVar = categoryParam
End Property
End Class
%>
Test.asp
<%
Dim CategoryVar
Set CategoryVar = New Category
CategoryVar.Name = "Weight"
Dim ItemVar
Set ItemVar = New Item
ItemVar.Name = "kg"
ItemVar.Category = CategoryVar
%>
<html>
<head>
<title>UoM Componet Testing</title>
</head>
<body>
<%= ItemVar.Name %><br/>
</body>
</html>
When I run this code, I have found some problem. Error is:
Microsoft VBScript runtime (0x800A01B6) Object doesn't support this property or method: 'CategoryVar'".
How can explain this? Please help me.
In VBScript, if you know that a property will contain an object reference, you must define it using the Property Set
statement. Furthermore, you must use the Set
statement when assigning object references to variables. With that in mind, the following changes need to be made:
Item.asp
Class Item
'<snip>
Public Property Get Category()
' Add Set here
Set category = categoryVar
End Property
' Change "Property Let" to "Property Set"
Public Property Set Category(categoryParam)
Set CategoryVar = categoryParam
End Property
End Class
Test.asp
<%
' <snip>
ItemVar.Name = "kg"
Set ItemVar.Category = CategoryVar
%>
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With