2012-03-08 130 views
2

更大我有一個DropDownList控件,我想設置的SelectedValue在下拉列表中的最低值大於0DropDownList中選擇最低值大於X

例如我的控制drpExample具有以下值:

0 
0.90 
2 
3.32 

我想使用drpExample.SelectedValue =最低值大於0

大於所述的SelectedValue應該是0.90

有沒有簡單的方法來做到這一點?

感謝您的期待!

+0

是,0.9比0。這個下拉回報運費更大。我希望它被默認爲最低成本的運輸,但我不想選擇用於收集的0。 – 2012-03-08 12:08:41

回答

2

試試這個:

Dim lowestItem As Decimal = 0 
For Each item As ListItem In ddl.Items 
    Dim itemValue As Decimal = CDec(item.Value) 
    If itemValue > 0 AndAlso (lowestItem = 0 Or itemValue < lowestItem) Then lowestItem = itemValue 
Next 
ddl.SelectedValue = lowestItem 

哪裏ddl是你的DropDownList控件ID。

+0

嗨,簡直,似乎沒有爲我做任何事情。沒有新的選擇。 – 2012-03-08 12:04:33

+0

我做了一個小小的修改,你可以試試。你有沒有嘗試過調試代碼? – Curt 2012-03-08 12:10:46

+0

這不是爲我工作對不起。調試:'drpDelivery'有一個無效的SelectedValue,因爲它不存在於項目列表中。 參數名稱:值 – 2012-03-08 12:14:46

-1

你可以做這樣的:

For Each i As ListItem In DropDownList1.Items 
     If i.Value > 0 And i.Value < DropDownList1.SelectedValue Then 
      DropDownList1.SelectedValue = i.Value 
     End If 
    Next 
+0

嗨梓山,這似乎有點古怪。一個新的值被選中,但它似乎是選擇高於大於0的最低值的項目:( – 2012-03-08 12:05:34

+0

嗨,爲了得到一個較低的值,用「」替換「>」,這應該工作 – Zishan 2012-03-08 12:07:35

+0

這贏得了'它只會選擇第一個大於0的值。 – Curt 2012-03-08 12:09:44

2

或者試試這個:

Dim L As New List(Of Decimal) 
For Each item As ListItem In DropDownList.Items 
    L.Add(CDec(item.Value)) 
Next 
ddl.selectedvalue = L.Min()