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




相关文章
|
8月前
mvc.net分页查询案例——DLL数据访问层(HouseDLL.cs)
mvc.net分页查询案例——DLL数据访问层(HouseDLL.cs)
|
3月前
|
SQL XML 关系型数据库
入门指南:利用NHibernate简化.NET应用程序的数据访问
【10月更文挑战第13天】NHibernate是一个面向.NET的开源对象关系映射(ORM)工具,它提供了从数据库表到应用程序中的对象之间的映射。通过使用NHibernate,开发者可以专注于业务逻辑和领域模型的设计,而无需直接编写复杂的SQL语句来处理数据持久化问题。NHibernate支持多种数据库,并且具有高度的灵活性和可扩展性。
52 2
|
5月前
|
开发框架 .NET 数据库连接
闲话 Asp.Net Core 数据校验(三)EF Core 集成 FluentValidation 校验数据例子
闲话 Asp.Net Core 数据校验(三)EF Core 集成 FluentValidation 校验数据例子
101 1
|
6月前
|
开发框架 JSON 前端开发
利用查询条件对象,在Asp.net Web API中实现对业务数据的分页查询处理
利用查询条件对象,在Asp.net Web API中实现对业务数据的分页查询处理
|
5月前
|
开发框架 前端开发 算法
分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法
分享 .NET EF6 查询并返回树形结构数据的 2 个思路和具体实现方法
|
8月前
|
存储 测试技术 计算机视觉
高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据
高维数据惩罚回归方法:主成分回归PCR、岭回归、lasso、弹性网络elastic net分析基因数据
|
8月前
|
SQL 数据库
使用ADO.NET查询和操作数据
使用ADO.NET查询和操作数据
|
8月前
|
SQL 开发框架 .NET
ASP.NET WEB+EntityFramework数据持久化——考核练习库——1、用户管理系统(考点:查询列表、增加、删除)
ASP.NET WEB+EntityFramework数据持久化——考核练习库——1、用户管理系统(考点:查询列表、增加、删除)
128 0
|
8月前
|
Oracle 关系型数据库 数据管理
.NET医院检验系统LIS源码,使用了oracle数据库,保证数据的隔离和安全性
LIS系统实现了实验室人力资源管理、标本管理、日常事务管理、网络管理、检验数据管理(采集、传输、处理、输出、发布)、报表管理过程的自动化,使实验室的操作人员和管理者从繁杂的手工劳作中解放出来,提高了检验人员的工作效率和效益,降低了劳动成本和差错发生率。