Es sieht aus wie diese Frage was addressed here, aber seine Lösung hat nicht für mich arbeiten. Ich erstelle ein dynamisches Dropdown-Menüsystem, das eine sekundäre Dropdown-Liste mit den Ergebnissen einer Abfrage basierend auf dem ausgewählten Element im ersten Dropdown-Feld füllt.DropDownList SelectedIndex Wert nicht auf AutoPostback
Erste Dropdown bevölkert zu werden:
Dim db As New linqclassesDataContext
Dim categories = (From c In db.faq_cats)
NewFaqDropDownCategory.DataSource = categories
NewFaqDropDownCategory.DataTextField = "category"
NewFaqDropDownCategory.DataValueField = "category_id"
NewFaqDropDownCategory.DataBind()
Unset(categories)
Unset(db)
Zweiter Dropdown bevölkert zu werden:
Protected Sub NewFaqDropDownCategory_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
Dim temp As Integer = CInt(Val(NewFaqDropDownCategory.SelectedIndex))
MsgBox(theDrop.SelectedValue)
Return
'Dim db As New linqclassesDataContext
'Dim faqs = (From f In db.faqs Where f.category = NewFaqDropDownCategory.SelectedValue)
'NewFaqDropDownList.DataSource = faqs
'NewFaqDropDownList.DataTextField = "question"
'NewFaqDropDownList.DataValueField = "id"
'NewFaqDropDownList.DataBind()
'NewFaqLabel.Visible = True
'NewFaqDropDownList.Visible = True
'Unset(faqs)
'Unset(db)
End Sub
Das Markup für den ersten Drop-Down ...
<asp:DropDownList ID="NewFaqDropDownCategory" AutoPostBack="true" runat="server" OnSelectedIndexChanged="NewFaqDropDownCategory_SelectedIndexChanged">
</asp:DropDownList>
Und die zweiten ...
<asp:DropDownList ID="NewFaqDropDownList" runat="server" Visible="false">
</asp:DropDownList>
Egal, was ich versucht habe, bekomme ich immer "1" (der Wert des ersten Elements im zweiten Dropdown). Der Post, auf den ich zuvor hingewiesen habe, sagte, dass dies mit AutoPostBack zu tun hatte und der Server nicht wusste, dass die Liste noch aktualisiert wurde.
Kann jemand dies für mich ein wenig mehr klären?
ah hah! Du hattest absolut recht. Ich habe die Pause dort hineingelegt und herausgefunden, dass sie tatsächlich gerufen wurde, kurz bevor das Ereignis ausgelöst wurde. Ich wickelte den DataBind in eine wenn nicht page.ispostback Bedingung, und das reparierte es! Vielen Dank! – Anders
Yay, meine SO Jungfräulichkeit ist mit meiner ersten akzeptierten Antwort verloren :) – grenade