0

我在我的 aspx 页面中有这个:

<asp:ListBox ID="ListBoxDelete" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ListBoxDelete_SelectedIndexChanged1"></asp:ListBox>

后面的代码:

protected void Page_Load(object sender, EventArgs e){
   ListBoxDelete.Items.Clear();
   List<string> itens = new List<string>();
   for(var item in itens){
      ListBoxDelete.Items.Add(item);
   }
}

protected void ListBoxDelete_SelectedIndexChanged1(object sender, EventArgs e){
   int x = ListBoxDelete.SelectedIndex;
   doSomething(x);
}

我的 SelectedIndex 不起作用...如果我没记错的话,该值始终为 -1。有什么问题?

4

2 回答 2

1

如下更改您的代码并尝试

protected void Page_Load(object sender, EventArgs e){
if(!IsPostBack)
{
   ListBoxDelete.Items.Clear();
   List<string> itens = new List<string>();
   for(var item in itens){
      ListBoxDelete.Items.Add(item);
   }
}
}
于 2013-03-09T13:26:08.807 回答
1

Page_Load使用 if IsPostBack更新您的

protected void Page_Load(object sender, EventArgs e){
 if (!IsPostBack)
    {
     ListBoxDelete.Items.Clear();
     List<string> itens = new List<string>();
      for(var item in itens){
       ListBoxDelete.Items.Add(item);
     }
  }
}
于 2013-03-09T13:26:20.180 回答