2008-09-30 53 views
1

我在ASP.NET中使用了一個代碼隱藏頁面來執行SQL查詢。查詢被加載到一個字符串中,連接被建立(到Oracle),並且我們通過連接將.ExecuteReader執行到OleDBDataReader(我們將其稱爲DataRead)來啓動它。我會盡力在下面舉一個例子。 (考慮跌落爲ASP DropDownList控件)ASP.NET 2.0中的下拉控件

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

回答

6

Add功能可以採取ListItem,所以你可以做

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

多年後,我發現這又有幫助。謝謝。 – Maximillian 2014-01-22 18:57:48

1

原諒我可能是錯誤的VB

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

Drop.Items.Add(item) 

您也可以使用列表項的構造(例如,新的ListItem( 「文字」, 「值」))

3

添加應該有一個接受一個ListItem過載目的。利用這一點,你通常可以做這樣的事情:


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

你說幾乎完全一樣的東西,除了我大約提前30秒。 Upvoted :) – Grank 2008-09-30 16:21:58

0

你會選擇第二列到你的DataReader(如標識字段),然後指定做你的產品產生這樣的:

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

您可能還需要尋找到的數據綁定功能,並且過濾掉「模糊BUNN IES「在SQL語句中。

3

如果我理解這個問題,Items.Add具有過載,需要一個列表項,那麼你可以在該行創建一個新的ListItem對象:

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

有幾個人打我回答這個問題 – Grank 2008-09-30 16:17:22