2015-08-19 51 views
0

下拉列表的字符串我有一個下拉列表,看起來像這樣:找到,如果值包含在vb.net

<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="True"> 
         <asp:ListItem Text="Text1" Value="6,08/04/2015,P"></asp:ListItem> 
         <asp:ListItem Text="Text2" Value="5,11/17/2014,S"></asp:ListItem> 
         <asp:ListItem Text="Text3" Value="4,05/26/2014,P"></asp:ListItem> 
         <asp:ListItem Text="Text4" Value="3,01/20/2014,A"></asp:ListItem> 
         <asp:ListItem Text="Text5" Value="2,10/31/2013,G"></asp:ListItem> 
         <asp:ListItem Text="Text6" Value="1,04/09/2013,P"></asp:ListItem> 
</asp:DropDownList> 

我需要能夠從數據庫中獲取的日期,並嘗試自動從下拉列表中選擇正確的日期。

我後面的代碼如下:

dim strDate as string = "10/31/2013" 

DropDownList1.selectedvalue.contains(strDate) 

類似的東西,但它不會從下拉正確的值了。

+0

'selectedvalue.contains'檢查當前選定的值_。你必須遍歷所有項目,並使用'IndexOf()'函數(或'Regex')來檢查項目是否包含子字符串。然後,您可以爲您想要選擇的項目分配'selectedindex'或類似的東西。 –

回答

1

這些都應該工作。我將遍歷下拉列表項集合,然後將值分割成一個數組。驗證值實際上包含3個值,並獲得第二個與strDate進行比較。一旦你驗證了值匹配項,就可以通過下面的方法中的任何一個來選擇項目,並退出For Each循環,這樣就會有重複項,它會抓取第一個項。

Dim strDate As String = "10/31/2013" 

For Each item As ListItem In DropDownList1.Items 

    Dim split As Array = item.Value.ToString.Split(",") 

    'verify the value is split to 3 values 
    If split.GetUpperBound(0) = 2 Then 

     'get 2nd item which is 1 as array are 0 based 
     If split(1) = strDate Then 
      item.Attributes.Add("selected", "true") 
      Exit For 
     End If 

    End If 

Next 

'OR 

For Each item As ListItem In DropDownList1.Items 

    Dim split As Array = item.Value.ToString.Split(",") 

    'verify the value is split to 3 values 
    If split.GetUpperBound(0) = 2 Then 

     'get 2nd item which is 1 as array are 0 based 
     If split(1) = strDate Then 
      DropDownList1.SelectedValue = item.Value 
      Exit For 
     End If 

    End If 

Next 
+0

感謝它的工作! – adouglsh9