2012-03-08 201 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()