Avatar billede prasden2 Nybegynder
22. juli 2001 - 20:23 Der er 3 kommentarer og
1 løsning

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\"\">&nbsp;\"
    Response.Write \"<INPUT TYPE=SUBMIT NAME=\"\"DO\"\" VALUE=\"\"Recalculate\"\">&nbsp;\"
    Response.Write \"<INPUT TYPE=SUBMIT NAME=\"\"DO\"\" VALUE=\"\"Check out\"\">\"
    Response.Write \"</TD></TR></TABLE></FORM>\"
End Sub

</SCRIPT>
Avatar billede prasden2 Nybegynder
22. juli 2001 - 22:25 #1
Det skal måske lige nævnes at det er i PrintBag(BagItems) at problemet nok ligger.
Avatar billede prasden2 Nybegynder
22. juli 2001 - 23:05 #2
Måske jeg har lavet spørgsmålet for stort...
Min plan er at lave en webbutik vha. asp og tli dels XML.
XML delen bruges kun til at gemme mine resultater i.
Mit problem er at min server giver mig følgende fejlbesked:
Error Type:
Response object, ASP 0185 (0x80020003)
A default property was not found for the object.
/fairware/bag.asp

Det må have noget at gøre med denne sætning:
If BagItems.hasChildNodes Then   
    Response.Write \"You have no items in your shoppingcart.\"
    Response.Write BagItems.XMl
    PrintBag BagItems
Else
    PrintBag BagItems
End If
(response og printbag i then sætningen er kun sat ind for ast teste, skal normalt ikke være der)
Jeg har sporet mig frem til at det enten må være noget med PrintBag eller noget med min MagItems den er galt med, men kan ikke regne ud (har prøvet i laaaaang tid) hvad det er der giver den ovenstående fejlbesked.
Ville blive superglad hvis nogle kunne hjælpe mig så jeg kan komme videre med mit lille projekt.
På forhånd tak. :)

Avatar billede prasden2 Nybegynder
23. juli 2001 - 01:30 #3
Er nu kommet så langt som at det er her den nu går galt:

Error Type:
Microsoft VBScript runtime (0x800A01B6)
Object doesn\'t support this property or method
/fairware/bag.asp, line 112

Kode (linie 112):

Response.Write \"<TD>\" & item.attributes.getNamedItem(\"producent\") & \"</TD>\"

Dette er et forsøg på at udtrække \"producent\" fra XML sætningen:

        Set attr = XMLDoc.createAttribute(\"producent\")
        attr.Text = Server.HtmlEncode(avarProduct(1,0))
        product.attributes.setNamedItem(attr)

Håber nogle kan hjælpe mig nu...
Avatar billede prasden2 Nybegynder
23. juli 2001 - 09:49 #4
Nå men fandt ud af det selv...

item.attributes.getNamedItem
skulle ændres til
item.getattribute

Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester