1

ASP.NET で分離コード ページを使用して SQL クエリを実行しています。クエリが文字列に読み込まれ、(Oracle に対して) 接続が確立され、OleDBDataReader に対して .ExecuteReader を実行することによって接続が開始されます (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 フィールドなど) に 2 番目の列を選択し、次のようにアイテムの生成を割り当てます。

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 に答える