Default property for object not found
Har et problem med ikke at kunne formatere noget XML i asp.Får følgende fejlbesked når jeg prøver at adde et item i min indkøbskurv i mit webbutikscript:
Error Type:
Response object, ASP 0185 (0x80020003)
A default property was not found for the object.
/fairware/bag.asp
Koden er som følger:
<%
option explicit
Response.Buffer = True
%>
<html>
<head>
<title>Implementing the Shopping Bag</title>
</head>
<body bgcolor=\"#ffffff\">
<%
\' get or create the bag
Set BagItems = LoadXMLBag()
\' products are added using the query string
nProductId = Trim(Request.QueryString(\"id\"))
AddtlProduct nProductId, BagItems
Session(\"BagItems\") = BagItems.XML
If BagItems.hasChildNodes Then
Response.Write \"You have no items in your shoppingcart.\"
Response.Write BagItems.XMl
PrintBag BagItems
Else
PrintBag BagItems
End If
%>
</body>
</html>
<SCRIPT LANGUAGE=VBSCRIPT RUNAT=SERVER>
dim xmldoc, nProductId, bValid, objConn, objRS
dim nTotal, item, BagItems, avarProduct
dim nodeFind, product, attr
Function LoadXMLBag()
Set XMLDoc = Server.CreateObject(\"Microsoft.XMLDOM\")
If Not IsEmpty(Session(\"BagItems\")) Then
XMLDoc.loadXML CStr(Session(\"BagItems\"))
Set BagItems = XMLDoc.documentElement
Else
Set BagItems = XMLDoc.createElement(\"BagItems\")
Set XMLDoc.documentElement = BagItems
End If
Set LoadXMLBag = BagItems
End Function
Sub AddtlProduct(nProductId, BagItems)
bValid = True
If \"\" = nProductId Or Not IsNumeric(nProductId) Then
bValid = False
Else
Set objConn = Server.CreateObject(\"ADODB.Connection\")
objConn.Open \"Data Source=Fairware;User ID=sa;Password=;\"
Set objRS = Server.CreateObject(\"ADODB.Recordset\")
Set objRS.ActiveConnection = objConn
objRS.Open \"SELECT * FROM Produkter WHERE Id=\" & nProductId
If objRS.EOF And objRS.BOF Then
bValid = False
Else
avarProduct = objRS.GetRows()
End If
objConn.Close
Set objRS = Nothing
Set objConn = Nothing
End If
\' if the product was ok, add it to the bag
If bValid Then
AddProductToBag avarProduct, BagItems
End If
End Sub
Sub AddProductToBag(avarProduct, BagItems)
Set XMLDoc = BagItems.ownerDocument
Set nodeFind = BagItems.selectNodes(\"product[@id=\"\"\" & nProductId & \"\"\"]\")
Response.Write \"hey\"
If Not nodeFind.length > 0 Then
Set product = XMLDoc.createElement(\"product\")
Set attr = XMLDoc.createAttribute(\"id\")
attr.Text = avarProduct(0,0)
product.attributes.setNamedItem(attr)
Set attr = XMLDoc.createAttribute(\"producent\")
attr.Text = Server.HtmlEncode(avarProduct(1,0))
product.attributes.setNamedItem(attr)
Set attr = XMLDoc.createAttribute(\"produkt\")
attr.Text = Server.HtmlEncode(avarProduct(2,0))
product.attributes.setNamedItem(attr)
Set attr = XMLDoc.createAttribute(\"beskrivelse\")
attr.Text = Server.HtmlEncode(avarProduct(3,0))
product.attributes.setNamedItem(attr)
Set attr = XMLDoc.createAttribute(\"pris\")
attr.Text = avarProduct(4,0)
product.attributes.setNamedItem(attr)
product.text = \"1\"
BagItems.appendChild(product)
End If
End Sub
\'Sub Out(strOut)
\' Response.Write strOut
\'End Sub
Sub PrintBag(BagItems)
Response.Write \"<FORM METHOD=\"\"POST\"\" ACTION=\"\"\"
Response.Write Request.ServerVariables(\"SCRIPT_NAME\") & \"\"\">\"
Response.Write \"<TABLE><TR><TH>Units</TH><TH COLSPAN=2>\"
Response.Write \"Product</TH><TH>Unit Price</TH><TH>Price</TH>\"
Response.Write \"</TR>\" & vbCrLf
For Each item In BagItems.childNodes
Response.Write \"<TR><TD><input type=\"\"TEXT\"\" name=\"\"Qty\"
Response.Write item.attributes.getNamedItem(\"id\")
Response.Write \"\"\" VALUE=\"\"\" & item.text & \"\"\" SIZE=\"\"3\"\">\"
Response.Write \"<TD>\" & item.attributes.getNamedItem(\"producent\")
Response.Write \"</TD><TD>\" & item.attributes.getNamedItem(\"produkt\") & \"</TD>\"
nUnitPrice = item.attributes.getNamedItem(\"pris\")
nSubTotal = item.text * nUnitPrice
nTotal = nTotal + nSubTotal
Response.Write \"<TD>\" & FormatCurrency(nUnitPrice) & \"</TD>\"
Response.Write \"<TD><B>\" & FormatCurrency(nSubTotal) & \"</B></TD>\"
Response.Write \"</TR>\" & vbCRLF
Next
Response.Write \"<TR><TD COLSPAN=5><HR></TD></TR>\"
Response.Write \"<TR><TD COLSPAN=3></TD><TD><B>Total:</B></TD>\"
Response.Write \"<TD><B>\" & FormatCurrency(nTotal) & \"</B></TD></TR>\" & vbCrLf
Response.Write \"<TR><TD COLSPAN=5 ALIGN=\"\"RIGHT\"\">\"
Response.Write \"<INPUT TYPE=SUBMIT NAME=\"\"DO\"\" VALUE=\"\"Shop for more\"\"> \"
Response.Write \"<INPUT TYPE=SUBMIT NAME=\"\"DO\"\" VALUE=\"\"Recalculate\"\"> \"
Response.Write \"<INPUT TYPE=SUBMIT NAME=\"\"DO\"\" VALUE=\"\"Check out\"\">\"
Response.Write \"</TD></TR></TABLE></FORM>\"
End Sub
</SCRIPT>
