对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>
&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);
            }
        }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值