Asp.net 列表框选择更改事件所选索引

Asp.net 列表框选择更改事件所选索引,asp.net,listbox,Asp.net,Listbox,我不熟悉网络建设。我在页面上有以下列表框。页面处于启用视图状态 <asp:ListBox ID="ExamsList_ListBox" runat="server" DataTextField="Namee" viewstate="enabled" DataValueField="ID" AutoPostBack="true" Height="213px" Width="152px" ViewStateMode="Enabled" />

我不熟悉网络建设。我在页面上有以下列表框。页面处于启用视图状态

<asp:ListBox ID="ExamsList_ListBox" runat="server" DataTextField="Namee" viewstate="enabled"
            DataValueField="ID" AutoPostBack="true" Height="213px" Width="152px" 
            ViewStateMode="Enabled" />
选择改变了,甚至是:

Try
            Dim k As Integer = ExamsList_ListBox.SelectedIndex
            Dim tt As List(Of Integer) = ExamsList_ListBox.GetSelectedIndices.ToList
            Dim t As Object = ExamsList_ListBox.SelectedValue
            If ExamsList_ListBox.SelectedIndex > -1 Then
                DataModule.GetExam(CType(Session("Login"), TikoClasses.Login).Inst_ID, ExamsList_ListBox.SelectedValue)
            End If
        Catch ex As Exception

        End Try

正在寻求帮助。提前感谢。

您需要将绑定代码放在
下!iPostBack

if(!IsPostBack)
   ExamsList_ListBox.DataSource = DataModule.Exams_listall((CType(Session("Login"), TikoClasses.Login)).Inst_ID)
   ExamsList_ListBox.DataBind()
Endif

因为无论何时更改您的选择,您的页面加载事件都会首先触发,您的选择将丢失。

因此,我应该将此代码保存在哪里,它是否在页面加载事件中?是的,它应该在页面加载事件中,但在下面!IsPostBack条件。它仍然是相同的。我将页面加载事件更改为:受保护的子页面加载(ByVal sender作为对象,ByVal e作为System.EventArgs)处理我.load If(而不是IsPostBack),然后ExamList_ListBox.DataSource=DataModule.Tests_listall((CType(Session(“Login”),TikoClasses.Login)).Inst_ID)ExamList_ListBox.DataBind()如果End Sub被此代码终止,则它仅以0索引作为结果触发。
Try
            Dim k As Integer = ExamsList_ListBox.SelectedIndex
            Dim tt As List(Of Integer) = ExamsList_ListBox.GetSelectedIndices.ToList
            Dim t As Object = ExamsList_ListBox.SelectedValue
            If ExamsList_ListBox.SelectedIndex > -1 Then
                DataModule.GetExam(CType(Session("Login"), TikoClasses.Login).Inst_ID, ExamsList_ListBox.SelectedValue)
            End If
        Catch ex As Exception

        End Try
if(!IsPostBack)
   ExamsList_ListBox.DataSource = DataModule.Exams_listall((CType(Session("Login"), TikoClasses.Login)).Inst_ID)
   ExamsList_ListBox.DataBind()
Endif