Find if value contains a string in a drop down list in vb.net

末鹿安然 提交于 2020-01-06 18:32:32

问题


I have a drop down list that looks like this:

<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>

I need to be able to get a date from a database and try to automatically select the correct date from the drop down list.

my code behind is as follows:

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

DropDownList1.selectedvalue.contains(strDate)

something like that but it does not select the correct value from the drop down.


回答1:


Either of these should work. I would loop through the dropdown items collection and then split the value into an array. Validate that the values actually contain 3 values and get the second one to compare against strDate. Once you validate the value matches set the item as selected by either of the below methods and exit the For Each loop incase there are duplicates it would grab the 1st one.

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


来源:https://stackoverflow.com/questions/32100580/find-if-value-contains-a-string-in-a-drop-down-list-in-vb-net

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!