2015-08-19 3 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, чтобы получить дубликаты, он будет захватывать 1-й.

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

Смежные вопросы