前台代码:
<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> & nbsp;<asp:Button ID="btnAdd" runat="server" OnClick="btnAdd_Click" Text="添加" /> & nbsp; <asp:Button ID="btnRemove" runat="server" Text="移除" OnClick="btnRemove_Click" /> & nbsp;<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); } }