none
Problem mit DropDownList in ASP.NET RRS feed

  • Allgemeine Diskussion

  • Hallo zusammen

    ich habe auf meiner aspx-Seite eine DropDownList:

    <asp:DropDownList ID="DropDownListTest" runat="server" AutoPostBack="True" OnSelectedIndexChanged="DropDownListTestChanged">
        <asp:ListItem Value="V1" Text="Value 1"/>
        <asp:ListItem Value="V2" Text="Value 2"/>
    </asp:DropDownList>
    cs-Datei:
    DropDownListTest.SelectedItem.Value
    Im entsprechenden Eventhandler wird jedoch immer V2 zurück gegeben. Warum? Was mache ich Falsch?
    • Bearbeitet Stefan FalzModerator Mittwoch, 3. April 2013 17:07 Formatierung angepasst, Code als Code eingefügt.
    • Typ geändert Ionut DumaModerator Dienstag, 7. Mai 2013 13:04 Keine Ruckmeldung des Fragenstellender
    Mittwoch, 3. April 2013 16:37

Alle Antworten

  • Hi,

    also grundsätzlich funktioniert das einwandfrei. Ich hab das gerade ncohmal getestet, keine Probleme.

    Hast Du evtl. nicht die richtige Deklaration gepostet? Oder hast Du im Code bspw. noch etwas wie

    DropDownListTest.DataBind()
    stehen


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community


    Mittwoch, 3. April 2013 17:06
    Moderator
  • Die richtigen Daten sind es, d.h. es gibt in der richtigen Seite 11 Items in der Liste, aber selbst bei 2 gibt es Probleme.

    Ich habe es so gemacht, das ich einen Parameter an die Adresse anhängen kann und dann entsprechend einen Wert in der Liste markiere. Wenn sich das selektierte Element ändert, dann wird die Seite mit dem neuen Parameter neu geladen. Ich habe beim ausfragen des Wertes einen BP gesetzt, sodass ich den Wert kontrollieren kann, jedoch bleibt immer der Wert markiert, den ich mit dem Parameter mitgegeben habe. In meinen Tests immer der 2.

    Sonst wird nirgends auf die DropDownList zugegriffen. Sie ist nur da um eine grundsätzliche Variable zu setzen, welche den Seiteninhalt beeinflusst. (Muss vom Server generiert werden)

    Hast du/jemand anderes sonst noch irgendwelche Ideen?

    Mittwoch, 3. April 2013 17:16
  • Hallo,

    wo fragst du denn den Parameter aus? Meines Wissens nach wird mit aktiviertem AutoPostBack, zuerst Load ausgeführt und danach der Eventhandler, und dann nochmal Load. (So war es in meinem Nachbau)
    Nachdem ich das ausfragen des Parameters in PreRender verlegt habe hat mein Nachbau funktioniert. Ich weiß zwar nicht ob das das passendste Event ist, aber es funktioniert.


    <Code:13/> - Koopakiller [kuːpakɪllɐ]
    Webseite | Code Beispiele | Facebook | Snippets
    Wenn die Frage beantwortet ist, dann markiert die hilfreichsten Beiträge als Antwort und bewertet die Beiträge. Danke.
    Einen Konverter zwischen C# und VB.NET Code gibt es hier.

    Mittwoch, 3. April 2013 17:28
  • Hi,

    deine Beschreibung sagt mir: Der wichtigste Teil, nämlich der gesamte Code, fehlt.

    Dein beschriebenes Konstrukt ist schon etwas komisch. Poste bitte mal den Code dazu, dann kann man dir evtl. auch weiterhelfen.


    Gruß, Stefan
    Microsoft MVP - Visual Developer ASP/ASP.NET
    http://www.asp-solutions.de/ - Consulting, Development
    http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

    Mittwoch, 3. April 2013 21:24
    Moderator
  • ****************************************************************************************************************
    Dieser Thread wurde mangels weiterer Beteiligung des Fragestellenden ohne bestätigte Lösung abgeschlossen.
    Neue Rückfragen oder Ergänzungen zu diesem Thread bleiben weiterhin möglich.
    ****************************************************************************************************************
    Dienstag, 7. Mai 2013 13:03
    Moderator
  • Postest du das Forumlar in einem Form-Tag als PostBack zurück? Achte auf die URL, wenn du in der URL von vornherein z.B. ?dropdownvalue=4 hast, dann ergibt sich ggf. auch eine PostBack-URL wie ?dropdownvalue=4, wodurch der POST Wert im übertragenen Datenstrom zwar enthalten ist, aber da (soweit ich mich erinnere) von .NET zuerst GET ausgewertet wird, holt er sich den Wert aus der URL anstatt aus dem Formular.

    Versuch das Vermischen von GET und POST zu vermeiden, warum brauchst du überhaupt den Dropdownvalue in der URL, vielleicht ist das Design an der Stelle schon suboptimal.

    Du kannst auch - beim auswählen eines DropDownValues - sagen, dass die Seite neu geladen werden soll falls das notwendig ist und somit serverseitig bestimmte Dinge machen.

     
    Mittwoch, 12. Juni 2013 07:21