对ListBox的添加移除操作实例分享
2024-07-10 12:45:53
供稿:网友
 
前台代码: 
 代码如下: 
<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); 
} 
}