首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dropdown不从BLL填充

Dropdown不从BLL填充
EN

Stack Overflow用户
提问于 2011-11-26 21:46:07
回答 1查看 153关注 0票数 0

我想通过使用BLL和DAL类来填充页面加载中的下拉列表。这是代码

代码语言:javascript
复制
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)      Handles Me.Load
        dropBrand.DataSource = BLLManufacturer.selectManufacturers()
        dropBrand.DataTextField = "ManufacturerName"
        dropBrand.DataValueField = "ManufacturerID"
        dropBrand.DataBind()

        dropModel.DataSource = BLLModel.selectModelsByBrand(Convert.ToInt16(dropBrand.SelectedValue))
        dropModel.DataTextField = "ModelName"
        dropModel.DataValueField = "ModelID"
        dropModel.DataBind()
    End Sub

第一个下拉菜单按照它应该做的那样填充了品牌,但第二个没有。第二个下拉列表需要在第一个下拉列表中显示所选品牌的汽车型号。然而,无论我选择什么品牌,dropBrand.SelectedValue总是返回0。没有convert toint16,它就不能工作,也不能使用convert toint32或toint64。有人知道怎么解决这个问题吗?

EN

回答 1

Stack Overflow用户

发布于 2011-11-26 21:52:16

您已有的内容将不起作用,因为它只将初始数据绑定到下拉列表。

您需要设置一个将为BLLManufacturer下拉列表触发的SelectedIndexChanged事件,然后从该列表中获取所选值,并将数据绑定到BLLModel列表。类似这样的东西(代码未经过测试)-

代码语言:javascript
复制
Private Sub BLLManufacturer_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles BLLManufacturer.SelectedIndexChanged
       ' Get the currently selected item in the ListBox.
        Dim curItem As String = BLLManufacturer.SelectedItem.ToString()

        dropModel.DataSource = BLLModel.selectModelsByBrand(Convert.ToInt16(curItem ))
        dropModel.DataTextField = "ModelName"
        dropModel.DataValueField = "ModelID"
        dropModel.DataBind()
End Sub

你也可以通过AJAX做你想做的事情,避免页面回发。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8278801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档