この質問はここで対処されたようですが、彼の解決策は私にとってはうまくいきませんでした。最初のドロップダウンで選択した項目に基づいて、クエリの結果をセカンダリ ドロップダウンリストに入力する動的ドロップダウン メニュー システムを作成しています。
最初のドロップダウンが読み込まれます:
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)
2 番目のドロップダウンが読み込まれます:
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
最初のドロップダウンのマークアップ...
<asp:DropDownList ID="NewFaqDropDownCategory" AutoPostBack="true" runat="server" OnSelectedIndexChanged="NewFaqDropDownCategory_SelectedIndexChanged">
</asp:DropDownList>
そして2番目...
<asp:DropDownList ID="NewFaqDropDownList" runat="server" Visible="false">
</asp:DropDownList>
何を試しても、常に「1」(2 番目のドロップダウンの最初の項目の値) を取得します。前に参照した投稿では、これは AutoPostBack と関係があり、サーバーはリストがまだ更新されたことを認識していないと述べていました。
誰かが私のためにこれをもう少し明確にすることができますか?