1

我在 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 不同?

4

5 回答 5

6

Add函数可以采用ListItem 所以你可以这样做

Dim li as new ListItem(DataRead.Item("Subgroup of Bunnies"), "myValue")
Drop.Items.Add(li)
于 2008-09-30T16:15:56.793 回答
3

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


Drop.Items.Add(New ListItem("Text", "Value"))
于 2008-09-30T16:15:47.947 回答
3

如果我理解这个问题,Items.Add 有一个采用 ListItem 的重载,因此您可以在该行中创建一个新的 ListItem 对象:

Drop.Items.Add(new ListItem("text", "value"))
于 2008-09-30T16:16:58.477 回答
1

请原谅我可能有问题的 VB

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

Drop.Items.Add(item)

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

于 2008-09-30T16:15:01.147 回答
0

您将在数据阅读器中选择第二列(例如 IDENTITY 字段),然后像这样分配您的项目生成:

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”。

于 2008-09-30T16:16:43.360 回答