asp.net 2个ListBox之间转移数据的实现

简介:       2个ListBox之间转移数据,通常左侧的是从数据库动态读取出来的数据,然后右侧是用户从左侧选择数据项后添加的,这种情况在设置权限等场合经常用到,如下图:功能实现起来也很简单...

      2个ListBox之间转移数据,通常左侧的是从数据库动态读取出来的数据,然后右侧是用户从左侧选择数据项后添加的,这种情况在设置权限等场合经常用到,如下图:


功能实现起来也很简单,实现方法如下:

   

    /// <summary>
    /// 选择
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnSave_Click(object sender, EventArgs e)
    {
        int count = listBox1.Items.Count;
        int index = 0;
        for (int i = 0; i < count; i++)
        {
            ListItem item = listBox1.Items[index];
            if (listBox1.Items[index].Selected == true)
            {
                listBox1.Items.Remove(item);
                listBox2.Items.Add(item);
                index--;
            }
            index++;
        }
    }



    /// <summary>
    /// 取消
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnCancel_Click(object sender, EventArgs e)
    {
        int count = listBox2.Items.Count;
        int index = 0;
        for (int i = 0; i < count; i++)
        {
            ListItem item = listBox2.Items[index];
            if (listBox2.Items[index].Selected == true)
            {
                listBox2.Items.Remove(item);
                listBox1.Items.Add(item);
                index--;
            }
            index++;
        }
    }





   /// <summary>
    /// 全部选择
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnSaveAll_Click(object sender, EventArgs e)
    {
        //定义中间动态存储    
        ArrayList arrRight = new ArrayList();
        //读取左边listbox的item的选中项    
        foreach (ListItem item in this.listBox1.Items)
        {
            arrRight.Add(item);
        }
        //执行右移操作    
        foreach (ListItem item in arrRight)
        {
            this.listBox2.Items.Add(item);
            this.listBox1.Items.Remove(item);
        }
    }



    /// <summary>
    /// 全部取消
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnCancelAll_Click(object sender, EventArgs e)
    {
        ArrayList arrLeft = new ArrayList();
        //读取右边listboxitem的选中项    
        foreach (ListItem item in this.listBox2.Items)
        {
            arrLeft.Add(item);
        }
        //执行左移操作    
        foreach (ListItem item in arrLeft)
        {
            this.listBox1.Items.Add(item);
            this.listBox2.Items.Remove(item);
        }
    }




相关文章
mvc.net分页查询案例——DLL数据访问层(HouseDLL.cs)
mvc.net分页查询案例——DLL数据访问层(HouseDLL.cs)
|
网络协议 定位技术 网络安全
IPIP.NET-IP地理位置数据
IPIP.NET 是一家专注于 IP 地理位置数据的提供商,基于 BGP/ASN 数据与全球 800+ 网络监测点技术,提供高精度的 IPv4 和 IPv6 定位服务。其核心服务包括地理位置查询、详细地理信息和网络工具等,广泛应用于网络安全、广告营销、CDN 优化等领域。数据覆盖全球,支持多语言,每日更新确保实时性。IPIP.NET 提供 API 接口、离线数据库及多种语言 SDK,方便开发者集成使用。
2640 0
|
SQL XML 关系型数据库
入门指南:利用NHibernate简化.NET应用程序的数据访问
【10月更文挑战第13天】NHibernate是一个面向.NET的开源对象关系映射(ORM)工具,它提供了从数据库表到应用程序中的对象之间的映射。通过使用NHibernate,开发者可以专注于业务逻辑和领域模型的设计,而无需直接编写复杂的SQL语句来处理数据持久化问题。NHibernate支持多种数据库,并且具有高度的灵活性和可扩展性。
490 2
|
开发框架 .NET 数据库连接
闲话 Asp.Net Core 数据校验(三)EF Core 集成 FluentValidation 校验数据例子
闲话 Asp.Net Core 数据校验(三)EF Core 集成 FluentValidation 校验数据例子
292 1
|
开发框架 JSON 前端开发
利用查询条件对象,在Asp.net Web API中实现对业务数据的分页查询处理
利用查询条件对象,在Asp.net Web API中实现对业务数据的分页查询处理
|
开发框架 前端开发 算法
分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法
分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法
289 0
|
存储 测试技术 计算机视觉
高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据
高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据
|
SQL 数据库
使用ADO.NET查询和操作数据
使用ADO.NET查询和操作数据
|
SQL 开发框架 .NET
ASP.NET WEB+EntityFramework数据持久化——考核练习库——1、用户管理系统(考点:查询列表、增加、删除)
ASP.NET WEB+EntityFramework数据持久化——考核练习库——1、用户管理系统(考点:查询列表、增加、删除)
301 0