我在ASP.NET中使用代码隐藏页面来执行SQL查询。查询被加载到一个字符串中,建立连接(To 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不同?

有帮助吗?

解决方案

添加功能可以 ListItem ,所以你可以做到

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

其他提示

Add应该有一个接受ListItem对象的重载。使用它,你通常可以做这样的事情:


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

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

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

原谅我可能有缺陷的VB

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

Drop.Items.Add(item)

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

你要在datareader中选择第二列(例如IDENTITY字段),然后像这样分配你的Item生成:

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

您可能还想查看DATABIND功能,并过滤掉“FUZZY BUNNIES”。在SQL语句本身。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top