1

这是我填充下拉列表的代码:

For i = 1 To Convert.ToInt32(count1)
            etc.CommandText = "select Classification from schemaItemDetails.AssetCategory where ASC_ID = " & i & ""
            Dim dra1 As SqlDataReader = etc.ExecuteReader
            While (dra1.Read())
                ddonecategory.Items.Add(dra1.GetString(0))
            End While
            dra1.Close()
        Next

如何设置下拉列表的文本?因为当我使用此代码设置下拉列表的文本时:

ddonecategory.Text = "Toolings".Text

我收到这种错误:

'ddonecategory' has a SelectedValue which is invalid because it does not exist in the list of items.
4

1 回答 1

0

我不知道如何用 vb 编写,但在 C# 中应该是这样的

   ddonecategory.SelectedIndex = 
               ddonecategory.Items.IndexOf(ddonecategory.Items.FindByText("Your value"));

关键是Items.FindByText方法
这样做的好处是如果找不到该项目,则将其设置为-1。
因此,如果在下拉列表中没有找到匹配项,则不会出现任何错误。

编辑-1

这是一个很好的解释
检查下拉列表是否包含值的最佳方法?

编辑 2

这是VB代码

 Dim searchString As String = "Toolings".Text
 If ddonecategory.Items.FindByText(searchString) IsNot Nothing Then
     Label1.Text = "Item Found: " & searchString
 Else
     Label1.Text = "Item not Found: " & searchString
 End If
于 2013-02-06T04:24:25.567 回答