下拉列表中的八个项目中有两个不能使用VB.NET。他们为什么跳到索引0?

时间:2015-07-02 13:51:30

标签: asp.net vb.net dropdownbox

我的数据库中有八个项目。它们各自具有不同的文本和值属性。我将它们绑定在If Not Page.IsPostBack Then上。下拉列表中的其他项目正在ddlType_SelectedIndexChanged上运行。但是我有两个项目,当我选择它们时,它转到SelectedIndexChanged方法,它认为索引是0,值/文本是第一个。然后页面重新加载,并选择第一个值。任何人都可以给我任何方向或建议如何解决这个问题(这似乎是一个错误)??

两个项目不起作用的是索引1和索引7.每当我选择它们时,页面重新加载索引0.我已经尝试更改这两个值的索引但是无论它们在下拉列表中的哪个位置,它们都会不行。

<asp:DropDownList ID="ddlType" runat="server"  AutoPostBack="true"></asp:DropDownList> 

Protected Sub Page_Load1(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load    
    If Not Page.IsPostBack Then
        PopulateDropDownFields(ddlType, Session("LOB"), "NENB")
    End If
End Sub 

这是我使用GetFields方法的方法,该方法是对具有八个值的select存储过程的调用:

Public Shared Sub PopulateDropDownFields(ByVal theList As DropDownList, ByVal LOB As String, ByVal FieldType As String, Optional ByVal UseDescription As Boolean = True, Optional ByVal IncludeAll As Boolean = False)
    theList.Items.Clear()

    For Each s As Fields In Fields.GetFields(FieldType, LOB)
        If UseDescription Then                
            theList.Items.Add(New ListItem(s.Key, s.Value & "|" & s.Length))
        Else
            theList.Items.Add(New ListItem(s.Value))
        End If
    Next
End Sub

我正在尝试在此方法中调试它,但每当我选择这两个值时,它会转到索引0处的第一个值。下拉列表中的其他六个值。

Protected Sub ddlType_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ddlType.SelectedIndexChanged
    Dim str As String = ddlType.SelectedItem.ToString()
    Dim index As Integer = ddlType.SelectedIndex

End Sub

1 个答案:

答案 0 :(得分:0)

试试这个:

  

受保护的子ddlType_SelectedIndexChanged(发件人为对象,e As   EventArgs)处理ddlType.SelectedIndexChanged

Dim str As String = Sender.SelectedItem.ToString()
Dim index As Integer = Sender.SelectedIndex
     

End Sub