0

我正在开发一个当前正在工作的 VB.NET ASPX 文件。但是现在它出错了,因为我添加了一个新的输入参数,它是一个下拉列表。下拉列表现在可以正常工作。它的来源来自一个 SQL DataReader。但问题是用户应该看到的字段与基础值不同。所以我想创建一个二维数组列表或以某种方式创建如下映射:Visible Text Invisible Value AAAAA 601 BBBBB 602 CCCCC 603 ...

所以用户应该只看到AAAAA、BBBBB、CCCCC等作为选择。但是如果他们选择“BBBBB”,我的 SQL 查询必须过滤字段 = 602 上的记录。

这是我现在的代码的摘录:

        Dim pcSQL As String
        Dim ProductList As New ArrayList()
        Dim ProdCodeSearch As String
        Dim InstrumentSearch As String

        pcSQL = " select distinct instrument_name, product_code from FRUD.tblXref order by instrument_name "
        Dim DBConn As SqlConnection
        DBConn = New SqlConnection(ConfigurationManager.AppSettings("AMDMetricsConnectionString"))
        DBConn.Open()
        Dim reader As SqlDataReader
            Dim DBCommand As New SqlCommand(pcSQL, DBConn)       
        reader = DBCommand.ExecuteReader()

        While reader.Read()
        ProductList.Add(reader(0),reader(1))
        End While

        dProdCodeSearch.DataSource = ProductList(0)
        dProdCodeSearch.DataBind()
        reader.Close()

        ProdCodeSearch = dProdCodeSearch.SelectedValue
4

1 回答 1

1

您必须在它之前设置 DropDownList的DataTextFieldDataValueFieldDataBind

dProdCodeSearch.DataSource = reader
dProdCodeSearch.DataTextField  = "instrument_name"
dProdCodeSearch.DataValueField = "product_code"     
dProdCodeSearch.DataBind()

DataTextField是您希望用户看到的列,DataValueField通常是主键列。

您需要 DropDownList 的SelectedValue来获取所选项目的标识符。

于 2011-08-12T22:25:16.350 回答