Abhängig von einer Marke True oder False setzen

  • VB.NET (ASP)

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von ISliceUrPanties.

    Abhängig von einer Marke True oder False setzen

    Hallo,

    ich arbeite mich gerade in NET ein, vorher habe ich in Classic ASP programmiert. Ich habe folgendes programmiert.

    XML-Quellcode

    1. <asp:ListView ID="ListName" runat="server" OnSelectedIndexChanged="ListName_SelectedIndexChanged">
    2. <ItemTemplate>
    3. <tr>
    4. <td class="SchriftName"><%# Eval("Marke") %></td>
    5. </tr>
    6. </ItemTemplate>
    7. </asp:ListView>


    dann

    VB.NET-Quellcode

    1. Protected Sub ListName_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
    2. 'Declaring Variable Name
    3. Dim Name As Label
    4. Name = CType(FindControl("ListName"), Label)
    5. If Name.Text Is "True" Then
    6. Name.Text = "Yes"
    7. Else
    8. Name.Text = "No"
    9. End If
    10. End Sub


    Aber ich möchte abhängig von einer Marke (True oder False) einen Link setzen. Ich möchte das auch in aspx machen, aber weis nicht wie? Der scheint zu funktionieren, es kommt kein Fehler, aber es wird nur das Ergebnis der Marke angezeigt, also True oder False. Vielleicht kann jemand helfen?

    CodeTags korrigiert ~VaporiZed

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „VaporiZed“ ()

    Hallo,
    erstmal eins vorweg: Es ist toll, dass du dich mit .NET beschäftigst, aber ich fürchte, du hast dich leider für den falschen Teilbereich entschieden. ASP.NET Webforms wird seit sicherlich 10 Jahren nicht mehr weiterentwickelt und sollte auch (gerade für Lernzwecke) nicht mehr verwendet werden. Es ist ein Krampf mit Webforms zu arbeiten und lässt einem die grauen Haare nur so aus dem Kopf sprießen ;) Ich kann dir nur ans Herz legen, dir eine aktuelle Version von Visual Studio (falls nicht eh schon vorhanden - die Community Versionen sind kostenlos) herunterzuladen und mit einer ASP.NET Core-Web-App zu starten, wenn du mit dem Web-Thema weitermachen möchtest.

    Aber zu deinem Problem, was ich ehrlich gesagt noch nicht so ganz begriffen habe. Wo möchtest du einen Link setzen?
    Dein aktueller Code versucht beim SelectedIndexChanged-Ereignis deine eigentliche ListView in ein Label zu casten (was nie funktionieren wird). Was dir in deinem Code fehlt ist ein Label, mit dem du direkt arbeiten kannst.

    XML-Quellcode

    1. <asp:ListView ID="ListName" runat="server" OnSelectedIndexChanged="ListName_SelectedIndexChanged">
    2. <ItemTemplate>
    3. <tr>
    4. <td class="SchriftName"><%# Eval("Marke") %></td>
    5. </tr>
    6. </ItemTemplate>
    7. </asp:ListView>
    8. <asp:Label ID="LabelLink" runat="server"></asp:Label>


    VB.NET-Quellcode

    1. Protected Sub ListName_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs)
    2. If ListName.SelectedIndex = 0 Then
    3. Return
    4. End If
    5. LabelLink.Text = ListName.SelectedValue
    6. End Sub

    Du musst mal beim debuggen schauen, was SelectedValue genau enthält. Damit kannst du dann weiterarbeiten.

    CodeTags korrigiert ~VaporiZed

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VaporiZed“ ()

    Hi. @Lothar1951

    Das Ereignis "ListName_SelectedIndexChanged" ereignet sich ja beim ändern des Indexes (Auswahl in der Liste).

    Jetzt haben Sie eine Bedingung (If-Then) die nur prüft ob ein Label einen bestimmten Textinhalt besitzt.

    Ist es nicht sinnvoller, das etwas mit dem "ausgewählten" Element/Objekt geschieht?

    Dann würde ich mir das "sender-Objekt" (der Parameter) schnappen und schauen was den da drin steht, und das dann als Vergleichswert prüfen.

    Da ich, niemals, nie, nicht ASP programmiert habe, kann ich nur annehmen, das ein ausgewähltes Element, vom Typ "TR/TD" oder halt "Class=SchriftName" herhalten muss. :/

    Fake Code geht bestimmt nicht. :love:

    VB.NET-Quellcode

    1. If CType(sender , tr).Attribute("Value") = "Amiga500+" then
    2. Name.Text = "Yes"
    3. else
    4. Name.Text = "No"
    5. EndIf


    In etwa so...

    Ich hoffe ich konnte einen Anstoß geben. :)

    c.u. Joshi aus chilled Hamburg

    EDIT und PS: Behalten Sie nur den Gruß von mir und blenden Sie alles nach der ersten Zeile aus. lol
    Sont ist wieder eine Hose Kaputt... @ISliceUrPanties war einfach schneller und vorallem Besser. (psst musste ich so sagen...) c.u.

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „Joshi“ ()

    Danke für die schnelle Antwort. Allerdings gibt es bei mir die Eigenschaft "Text" nicht. Das möchte ich erreichen (siehe jpg). Ich arbeite schon mit Core.

    In dieser Domain (eurocamping.camp), die mit ASP Classic programmiert wurde, kann man alles sehen. Das möchte ich auch in Core realisieren. Ich würde empfehlen zur Kontrolle des Links Deutschland - Mecklenburg-Vorpommern und Ostseeküste zu nutzen. Wenn man auf den Link klickt, aktualisiert sich das Feld links daneben.
    Bilder
    • Mustermann.jpg

      292,26 kB, 757×318, 80 mal angesehen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „Lothar1951“ ()

    Kann man True irgendwie abfanden, um daraus eine Link zu machen?

    XML-Quellcode

    1. <asp:ListView ID="ListName" runat="server" OnSelectedIndexChanged="ListName_SelectedIndexChanged">
    2. <ItemTemplate>
    3. <tr>
    4. <td class="SchriftName"><%# Eval("Name") %> <%# Eval("J2021") %></td>
    5. </tr>
    6. </ItemTemplate>
    7. </asp:ListView>


    Gruß

    CodeTags korrigiert ~VaporiZed
    Bilder
    • Region.jpg

      220,84 kB, 436×440, 70 mal angesehen

    Dieser Beitrag wurde bereits 2 mal editiert, zuletzt von „VaporiZed“ ()

    Hallo,
    du magst zwar vielleicht mit einer aktuellen Version vom .NET-Framework arbeiten, aber dennoch ist der von dir gezeigte Code eine alte WebForms-Anwendung. "Moderne" Webprojekte kennen z.B. <asp:ListView ...></asp:ListView> nicht. Das ist ein Webforms-Ding.
    Ich habe mir deine Beispielseite mal angeschaut. Evtl. hilft dir dafür folgender Link weiter Erstellen kaskadierender Dropdownlisten in ASP.NET - ASP.NET | Microsoft Docs.