Parece que esta pregunta was addressed here, pero su solución no funcionó para mí. Estoy creando un sistema de menú desplegable dinámico que rellena una lista desplegable secundaria con los resultados de una consulta basada en el elemento seleccionado en el primer menú desplegable.DropDownList El valor de SelectedIndex no se actualiza en AutoPostback
primer desplegable conseguir poblada:
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)
segundo desplegable conseguir poblada:
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
El margen de beneficio por primera desplegable ...
<asp:DropDownList ID="NewFaqDropDownCategory" AutoPostBack="true" runat="server" OnSelectedIndexChanged="NewFaqDropDownCategory_SelectedIndexChanged">
</asp:DropDownList>
Y el segundo ...
<asp:DropDownList ID="NewFaqDropDownList" runat="server" Visible="false">
</asp:DropDownList>
No importa lo que haya intentado, siempre obtengo "1" (el valor del primer artículo en el segundo menú desplegable). La publicación a la que hice referencia anteriormente decía que esto tenía que ver con AutoPostBack y que el servidor no sabía que la lista se había actualizado todavía.
¿Alguien puede aclarar esto para mí un poco más?
ah hah! tenías toda la razón Puse el descanso ahí, descubrí que en realidad se llamaba justo antes de que el evento se disparó. Envolví el DataBind en un condicional si no es page.ispostback, ¡y eso lo solucionó! ¡Gracias! – Anders
Yay, mi SO virginity se pierde con mi primera respuesta aceptada :) – grenade