加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net – DropDownList SelectedIndex值未在AutoPostback上更

发布时间:2020-12-16 03:31:53 所属栏目:asp.Net 来源:网络整理
导读:它看起来像这个问题 was addressed here,但他的解决方案对我不起作用.我正在创建一个动态下拉菜单系统,该系统使用第一个下拉列表中所选项目的查询结果填充辅助下拉列表. 第一个下拉列表填充: Dim db As New linqclassesDataContextDim categories = (From c
它看起来像这个问题 was addressed here,但他的解决方案对我不起作用.我正在创建一个动态下拉菜单系统,该系统使用第一个下拉列表中所选项目的查询结果填充辅助下拉列表.

第一个下拉列表填充:

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)

填充第二个下拉列表:

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>

第二个……

<asp:DropDownList ID="NewFaqDropDownList" runat="server" Visible="false">
</asp:DropDownList>

无论我尝试过什么,我总是得到“1”(第二个下拉列表中第一个项目的值).我之前提到的帖子说这与AutoPostBack有关,而服务器不知道列表是否已更新.

任何人都可以为我澄清这一点吗?

解决方法

在行上设置一个断点:NewFaqDropDownCategory.DataBind()和事件处理程序中的一个(NewFaqDropDownCategory_SelectedIndexChanged).
我怀疑在NewFaqDropDownCategory_SelectedIndexChanged事件触发之前正在调用数据绑定,导致所选值发生更改.

如果是这样,你需要确保你只是数据绑定,如果你不在你的autopostback中间或者在事件处理程序的第一行使用NewFaqDropDownCategory.SelectedIndex,你可以将sender参数强制转换为DropDownList并使用它选定的价值.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读