Sembra questa domanda was addressed here, ma la sua soluzione non ha funzionato per me. Sto creando un sistema di menu a discesa dinamico che compila un elenco a discesa secondario con i risultati di una query basata sull'elemento selezionato nel primo elenco a discesa.DropDownList Valore SelectedIndex non aggiornato su AutoPostback
Prima discesa sempre popolato:
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)
Seconda discesa sempre popolato:
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
Il markup per la prima discesa ...
<asp:DropDownList ID="NewFaqDropDownCategory" AutoPostBack="true" runat="server" OnSelectedIndexChanged="NewFaqDropDownCategory_SelectedIndexChanged">
</asp:DropDownList>
E la seconda ...
<asp:DropDownList ID="NewFaqDropDownList" runat="server" Visible="false">
</asp:DropDownList>
Non importa quello che ho provato, ottengo sempre "1" (il valore del primo elemento nel secondo menu a discesa). Il post che ho citato in precedenza diceva che questo era dovuto a AutoPostBack e il server non sapeva che l'elenco era stato aggiornato.
Qualcuno può chiarire questo per me un po 'di più?
ah ah! avevi assolutamente ragione. Ho inserito la pausa, ho scoperto che veniva effettivamente chiamato prima che l'evento sparasse. Ho avvolto il DataBind in un condizionale se non page.ispostback, e questo ha risolto il problema! Grazie! – Anders
Yay, la mia verginità SO è persa con la mia prima risposta accettata :) – grenade