AJAX Control Toolkit Rating funktioniert nicht

  • VB.NET (ASP)

Es gibt 2 Antworten in diesem Thema. Der letzte Beitrag () ist von markusbreitenstein.

    AJAX Control Toolkit Rating funktioniert nicht

    Hallo Forum

    Ich habe folgenden Code in meiner Website:

    HTML-Quellcode

    1. <asp:Label ID="NEWS01" runat="server" CssClass="Black24" Text="Mitgliederabstimmung Pflanze des Monats" ></asp:Label><br />
    2. <br />
    3. <%
    4. Try
    5. Dim cmonth As Integer = Month(Now())
    6. Dim cyear As Integer = Year(Now())
    7. Dim connStr1 = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Server.MapPath("~/opendirectory/OFZ.accdb")
    8. Dim Conn1
    9. Conn1 = Server.CreateObject("ADODB.Connection")
    10. Conn1.Open(connStr1)
    11. Dim rs1 = Server.CreateObject("ADODB.RecordSet")
    12. rs1.open("select * from RATING_PIC where (R_P_MONAT like '" & cmonth.ToString & "') and (R_P_JAHR like '" & cyear.ToString & "')", Conn1, 2, 2, 1)
    13. Do Until rs1.eof
    14. Image1.ImageUrl = "~/Pflanzen/" + rs1.fields.Item("R_P_DATEI").Value.ToString
    15. Image1.AlternateText = rs1.fields.Item("R_P_DATEI").Value
    16. Dim titelname As String = (rs1.fields.Item("R_P_DATEI").Value).ToString
    17. Image1.ID = "IMG_" & rs1.fields.Item("R_P_ID").Value.ToString
    18. RAT_1.ID = "RAT_" & rs1.fields.Item("R_P_ID").Value.ToString
    19. Panel1.ID = "PAN_" & rs1.fields.Item("R_P_ID").Value.ToString
    20. BPE_1.ID = "BPE_" & rs1.fields.Item("R_P_ID").Value.ToString
    21. BPE_1.TargetControlID = "IMG_" & rs1.fields.Item("R_P_ID").Value.ToString
    22. BPE_1.BalloonPopupControlID = "PAN_" & rs1.fields.Item("R_P_ID").Value.ToString
    23. rs1.MoveNext
    24. %>
    25. <div id="PIC_1" runat="server" style="float:left; margin-left:5px; background-color:Transparent; height:210px; ">
    26. <asp:Image ID="Image1" runat="server" BorderWidth="5px" BorderColor="White" AlternateText="Kein Bild gefunden" Height="200" ImageAlign="Middle" />
    27. <ajaxToolkit:BalloonPopupExtender ID="BPE_1" runat="server" TargetControlID="Image1" BalloonPopupControlID="Panel1" DisplayOnFocus="False" DisplayOnMouseOver="True" >
    28. </ajaxToolkit:BalloonPopupExtender>
    29. <asp:Panel ID="Panel1" runat="server">
    30. <asp:Label ID="Label3" runat="server" CssClass="Black12" Text="Wieviele Sterne gibst du ?" ></asp:Label><br />
    31. <ajaxToolkit:Rating runat="server" ID="RAT_1" MaxRating="5" OnChange="OnRatingChanged" StarCssClass="Star" WaitingStarCssClass="WaitingStar" EmptyStarCssClass="EmptyStar" FilledStarCssClass="FilledStar"></ajaxToolkit:Rating>
    32. <asp:Label runat="server" ID="LAB_1" Text="" BackColor="Transparent" visible="false" /><br />
    33. </asp:Panel>
    34. </div>
    35. <%
    36. Loop
    37. rs1.close()
    38. Conn1.Close()
    39. rs1 = Nothing
    40. Conn1 = Nothing
    41. Catch ex As Exception
    42. Label2.Text = ex.ToString
    43. End Try
    44. %>

    Die Seite wird korrekt aufgebaut. Auch die Popup werden richtig eingesetzt. Wenn ich aber nun auf einen Stern klicke, bekomme ich immer eine Fehlermeldung, BEVOR der Code-Behind gestartet wird.

    An unhandled exception has occured:\r\nDie Eingabezeichenfolge hat das falsche Format.320|gj1y...........

    Jemand eine Idee dazu ?

    Ziel wäre es, das die Bilder nebeneinander erscheinen und man sie im Popup bewerten kann. Ich habe auch Versucht, das Rating direkt unter dem Bild anzuzeigen, der Fehler war der selbe. Das ich die ID des Rating anpasse liegt daran, das ich so im Code Behind den Datensatz ausfiltern möchte.

    Danke für eure Mithilfe
    Am lernen...
    Zu Deinem eigentlichen Problem kann ich so nichts sagen.
    Wirft die Fehlermeldung noch einen Hinweis zu einer Codezeile aus?

    ich habe aber noch zwei Anmerkungen zu deinem Code:
    1. Webserver und Access-Datenbank passen nicht so richtig zusammen. Für einen Webserver sollte man eine den Datenbank-Management-System und keine Datenbankdatei.
    2. Warum nutzt Du in Deiner Abfrage nicht

    SQL-Abfrage

    1. select * from RATING_PIC where (R_P_MONAT =" & cmonth.ToString & ") and (R_P_JAHR = " & cyear.ToString & ")

    Die beiden Datenspalten sollten schon von Datentyp Integer sein.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    Hallo Inopiae

    Danke für deine Antwort.

    Das ich nicht den von dir vorgeschlagenen Select nutze, liegt daran, das beim abfragen von Access aus meiner Erfahrung nur (LIKE String) und (= ZAHL) saubere Resultate liefern...

    Code nochmal gelesen, und hattest Recht, sind ja Integer ;)
    Am lernen...