对ListBox的添加移除操作实例分享

  前台代码:

  

复制代码 代码如下:

  <div>

  <asp:ListBox ID="ListBox1" runat="server" Height="123px" Width="113px" SelectionMode="Multiple">

  <asp:ListItem>tom</asp:ListItem>

  <asp:ListItem>jion</asp:ListItem>

  <asp:ListItem>j</asp:ListItem>

  <asp:ListItem>l</asp:ListItem>

  <asp:ListItem>k</asp:ListItem>

  </asp:ListBox>

  <asp:Button ID="btnAdd" runat="server" OnClick="btnAdd_Click" Text="添加" />

  <asp:Button ID="btnRemove" runat="server" Text="移除" OnClick="btnRemove_Click" />

  <asp:ListBox ID="ListBox2" runat="server" Height="123px" SelectionMode="Multiple" Width="113px"></asp:ListBox>

  </div>

  后台代码:

  

复制代码 代码如下:

  protected void btnAdd_Click(object sender, EventArgs e)

  {

  #region listbox添加记录的一种错误理解

  //选择多条记录的时候,会有一条没有被添加,这是因为当一条记录被移除后,原来的第二条记录的index为0

  //for (int i = 0; i < ListBox1.Items.Count; i++)

  //{

  // if (ListBox1.Items[i].Selected == true)

  // {

  // ListBox2.Items.Add(ListBox1.SelectedValue);

  // ListBox1.Items.Remove(ListBox1.SelectedValue);

  // }

  //}

  #endregion

  #region listbox利用index索引号进行添加的简单写法

  //while (0 <= ListBox1.SelectedIndex)

  //{

  // ListBox2.Items.Add(ListBox1.SelectedItem);

  // ListBox1.Items.Remove(ListBox1.SelectedItem);

  //}

  #endregion

  #region listbox的另一种成功添加方法

  List<ListItem> list = new List<ListItem>();

  for (int i = ListBox1.Items.Count - 1; i >= 0; i--)

  {

  if (ListBox1.Items[i].Selected == true)

  {

  list.Add(ListBox1.Items[i]);

  ListBox1.Items.Remove(ListBox1.Items[i]);

  }

  }

  for (int i = 0; i <=list.Count - 1; i++)

  {

  ListBox2.Items.Add(list[i]);

  }

  #endregion

  }

  protected void btnRemove_Click(object sender, EventArgs e)

  {

  while (0 <= ListBox2.SelectedIndex)

  {

  ListBox1.Items.Add(ListBox2.SelectedItem);

  ListBox2.Items.Remove(ListBox2.SelectedItem);

  }

  }