ASP.NET 2.0中的下拉菜单控件

时间:2020-03-06 14:55:54  来源:igfitidea点击:

我正在ASP.NET中使用代码隐藏页来执行SQL查询。将查询加载到字符串中,建立连接(至Oracle),然后通过将连接执行.ExecuteReader到OleDBDataReader(我们将其称为DataRead)中来启动查询。我将在下面尝试一个例子。 (将Drop视为ASP DropDownList控件)

Dim LookFor as String = "Fuzzy Bunnies"

While DataRead.Read
    If LookFor = DataRead.Item("Kinds of Bunnies") Then
        'Meets special critera, do secondary function'

         Drop.Items.Add(DataRead.Item("Subgroup of Bunnies"))
         ...
    End if
    ...
End While

这是我知道对DropDownList进行动态添加的唯一方法。但是,DropDownList中的每个项目都具有.text属性和.value属性。如何在代码中将.value定义为与.text不同?

解决方案

请原谅我可能是错误的VB

Dim item as New ListItem()
item.Value = "foo"
item.Text = "bar"

Drop.Items.Add(item)

我们还可以使用ListItem构造函数(例如new ListItem(" text"," value"))

Add应该有一个接受ListItem对象的重载。使用该方法,通常可以执行以下操作:

Drop.Items.Add(New ListItem("Text", "Value"))

Add函数可以使用ListItem,因此我们可以执行

Dim li as new ListItem(DataRead.Item("Subgroup of Bunnies"), "myValue")
Drop.Items.Add(li)

我们需要在数据读取器中选择第二列(例如IDENTITY字段),然后分配如下所示的Item生成:

Dim item as new listitem
item.text = DataRead.Item("SubGroup Of Bunnies")
item.value = DataRead.Item("ID")
Drop.Items.Add(item)

我们可能还需要研究DATABIND功能,并在SQL语句本身中过滤掉" FUZZY BUNNIES"。

如果我理解这个问题,Items.Add具有一个接受ListItem的重载,那么我们可以在该行中创建一个新的ListItem对象:

Drop.Items.Add(new ListItem("text", "value"))