当前位置:  开发笔记 > 编程语言 > 正文

DropDownList SelectedIndex值未在AutoPostback上更新

如何解决《DropDownListSelectedIndex值未在AutoPostback上更新》经验,为你挑选了1个好方法。

看起来这个问题在这里得到了解决,但他的解决方案对我不起作用.我正在创建一个动态下拉菜单系统,该系统使用第一个下拉列表中所选项目的查询结果填充辅助下拉列表.

第一个下拉列表填充:

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

第一个下拉列表的加价......



第二个......



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

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



1> grenade..:

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

如果是这样,你需要要么确保你只有数据绑定,如果你是不是在你的自动回中间或代替你的事件处理程序的第一行使用NewFaqDropDownCategory.SelectedIndex,就可以把发送参数一个DropDownList并使用其选定的价值.


是的,我的第一个接受的答案让我的处女失去了:)
推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有