两个ListBox的相互操作有四个按:全选,单选,反单选,反全选.
一.一种情况是这四个按钮用服务器控件:

    /**//// <summary>
    /// 选中全部
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnSelectAll_ServerClick(object sender, EventArgs e)
    {
        for (int i = 0; i < lb_Sourse.Items.Count; i++)
        {
            lb_NewName.Items.Add(new ListItem(lb_Sourse.Items[i].Text, lb_Sourse.Items[i].Value));
        }
        while(lb_Sourse.Items.Count > 0)
        {
           lb_Sourse.Items.Remove(lb_Sourse.Items[0]);
        }
    }
    /**//// <summary>
    /// 选中一个
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnSelectOne_ServerClick(object sender, EventArgs e)
    {
        if (lb_Sourse.SelectedIndex != -1)
        {
            string StrPersonFlow = "";
            for (int i = this.lb_Sourse.Items.Count; i > 0; i--)
            {
                if (this.lb_Sourse.Items[i - 1].Selected)
                {
                    StrPersonFlow += this.lb_Sourse.Items[i - 1].Value + ",";
                    this.lb_NewName.Items.Add(this.lb_Sourse.Items[i - 1]);
                    this.lb_Sourse.Items.Remove(this.lb_Sourse.Items[i - 1]);
                }
            }
        }
        else
        {
            Msg.Text = "请选中人员!";
        }
    }
    /**//// <summary>
    /// 删除单个
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnDelOne_ServerClick(object sender, EventArgs e)
    {
        if (lb_NewName.SelectedIndex != -1)
        {
            string StrPersonFlow = "";
            for (int i = this.lb_NewName.Items.Count; i > 0; i--)
            {
                if (this.lb_NewName.Items[i - 1].Selected)
                {
                    this.lb_Sourse.Items.Add(this.lb_NewName.Items[i - 1]);
                    this.lb_NewName.Items.Remove(this.lb_NewName.Items[i - 1]);
                    StrPersonFlow = this.lb_NewName.Items[i - 1].Value + ",";
                }
            }
        }
        else
        {
            Msg.Text = "请选中人员!";
        }
       
    }
    /**//// <summary>
    /// 删除全部
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    protected void btnDelAll_ServerClick(object sender, EventArgs e)
    {
        for (int i = 0; i < lb_NewName.Items.Count; i++)
        {
            lb_Sourse.Items.Add(new ListItem(lb_NewName.Items[i].Text, lb_NewName.Items[i].Value));
        }
        while (lb_NewName.Items.Count > 0)
        {
            lb_NewName.Items.Remove(lb_NewName.Items[0]);
        }
    }

二.第二种情况是用javascript实现:

function SelectOne()
         {
             var lst1=window.document.getElementById("<%=lb_Sourse.ClientID %>");
             var lst2=window.document.getElementById("<%=lb_NewName.ClientID %>");
             var lstindex=lst1.selectedIndex;
             var length = lst2.options.length;
             var isExists = false;
             if(lstindex<0)
                 return;
             else if(length != null)
             {
                 for(var i=0;i < length; i++)
                 {
                      if(lst2.options[i].text == lst1[lstindex].text && lst2.options[i].value == lst1[lstindex].value)
                      {
                         isExists = true;
                      }
                 }
             }
             else
             {
                 return;
             }
             if (isExists == false)
             {
                 var v = lst1.options[lstindex].value;
                 var t = lst1.options[lstindex].text;
                 lst2.options[lst2.options.length] = new Option(t,v,true,true);
                 lst1.options[lstindex].parentNode.removeChild(lst1.options[lstindex]);
             }
             else
             {
                 alert("所选条目已经存在");
                 return false;
             }
         }

         function DelOne()
         {
             var lst1=window.document.getElementById("<%=lb_Sourse.ClientID %>");
             var lst2=window.document.getElementById("<%=lb_NewName.ClientID %>");
             var lstindex=lst2.selectedIndex;
             if(lstindex>=0)
             {
//                 var v = lst2.options[lstindex].value+";";
                 var v = lst2.options[lstindex].value;
                 var t = lst2.options[lstindex].text;
                 lst1.options[lst1.options.length] = new Option(t,v,true,true);
                 lst2.options[lstindex].parentNode.removeChild(lst2.options[lstindex]);
             }
         }
         function SelectAll()
         {
             var lst1=window.document.getElementById("<%=lb_Sourse.ClientID %>");
             var length = lst1.options.length;
             for(var i=0;i<length;i++)
             {
                 var v = lst1.options[i].value;
                 var t = lst1.options[i].text;             
                 var lst2=window.document.getElementById("<%=lb_NewName.ClientID %>");
                 lst2.options[i] = new Option(t,v,true,true);
             }
         }
         
         function DelAll()
         {
             var lst2=window.document.getElementById("<%=lb_NewName.ClientID %>");
             var length = lst2.options.length;
             for(var i=length;i>0;i--)
             {
                 lst2.options[i-1].parentNode.removeChild(lst2.options[i-1]);
             }
         }

转载于:https://www.cnblogs.com/ygl127/archive/2007/07/26/832749.html

两个ListBox的相互操作相关推荐

  1. Winform/WPF实例中的相互操作

    介绍一下如何在实例中相互操作,比如在程序A中调用程序B中的方法,看起来不太可能,不过我们可以利用Win32API来实现.我们需要用到2个Win32函数: uint RegisterWindowsMes ...

  2. 判断子序列不同的子序列两个字符串的删除操作编辑距离

    引言 下面的四种题相互间都有联系,都是类似编辑距离类的题目,这里从简单开始,逐渐深入: 判断子序列 给定字符串 s 和 t ,判断 s 是否为 t 的子序列. 字符串的一个子序列是原始字符串删除一些( ...

  3. 【C++】两个类的相互引用

    有时候在设计数据结构的时候,可能会遇到两个类需要相互引用的情形.比如类A有类型为B的成员,而类B又有类型为A的成员. 那么这种情形下,两个类的设计上需要注意什么呢? 同一文件 尝试方案 将A和B的定义 ...

  4. QML与C++的相互操作:实现强大的Qt应用程序

    欢迎来到这篇关于 QML 与 C++ 相互操作的博客!QML 是一种用于创建现代用户界面的声明式编程语言,而 C++ 是一种面向对象的高性能编程语言.在 Qt 应用程序中,QML 通常用于设计 UI, ...

  5. HTML教程-各窗口间相互操作(Frame Target)

    文章来源: 山西之窗 由Frames分出来的几个窗口的内容并不是静止不变的,往往一个窗口的内容随着另一个窗口的要求而不断变化,这就提高了Frames的利用价值.为了完成各窗口之间的相互操作,我们必须为 ...

  6. shell中join链接多个域_shell 如何实现两个表的join操作

    shell 如何实现两个表的join操作 今天研究的一个问题是:在Shell 脚本中如何实现两个表的 join 操作,这里说的两个表示的其实是 两个文件,但是文件是列表的形式,有固定的分割符号,即就相 ...

  7. (9)C#之ADO.NET 两个ListBox联动案例

    这次的案例是做两个ListBox的联动,例如第一个ListBox显示的是全国各省份的名称,然后在用户点击某一个省份的同时,第二个ListBox显示出该省份的各城市的名字. ①这需要在数据库中创建一张表 ...

  8. git之工作区、版本区、远程仓库之间相互操作

    工作区.版本区.远程仓库之间相互操作示意图 工作区: IDE操作源码的⽬录. 版本库 版本库⼜名仓库,英⽂名repository. 这个⽬录⾥⾯的所有⽂件都可以被Git管理起来,每个⽂件的修改.删除, ...

  9. Leetcode 583.两个字符串的删除操作

    两个字符串的删除操作 给定两个单词 word1 和 word2,找到使得 word1 和 word2 相同所需的最小步数,每步可以删除任意一个字符串中的一个字符. 示例 1: 输入: "se ...

最新文章

  1. Python函数之计算规则图形的面积
  2. Adobe Flex 3.0 和 AIR 1.0 正式发布
  3. centos 6.5配置php,CentOS 6.5安装php5.6
  4. java queue源码_java源码解读--queue
  5. Python之编写登陆接口
  6. 非IE浏览器下让界面变灰色
  7. 玩转Web之servlet(一)---怎样创建一个servlet
  8. VMRC开启拷贝粘贴
  9. NLP大牛菲利普•科恩机器翻译权威著作
  10. android9最新系统,【5/31更新】Android 9.0系统升级时间的最新情况
  11. shal()函数绕过和session验证绕过
  12. python俄罗斯方块小游戏实验报告_用Python实现童年小游戏俄罗斯方块
  13. 全球免费公共 DNS 解析服务器 IP 地址列表推荐 (解决无法上网/加速/防劫持)
  14. springBoot配置 https 和http转htpps协议。
  15. 农村小伙不畏艰难,创业开装饰公司,年产值竟达上千万元?
  16. 博弈对抗游戏AI的技术方法的一些总结和思考
  17. mysql时间格式秒微秒_mysql 时间类型精确到毫秒、微秒及其处理
  18. 从Node.js访问文件系统
  19. 在学习JavaScript的过程
  20. log4j实现发送邮件功能

热门文章

  1. UART0串口编程(六):串口(UART0)之UC/OS(二)UC/OS下的串口接收任务编程
  2. IntelliJ IDEA创建maven web项目
  3. spring boot三:spring boot的hello, world
  4. html常用标签详解4-列表标签
  5. tcp和udp的区别?
  6. 《机器学习》 第 5 章 神经网络
  7. 参数处理:#{}与${}取值的区别
  8. regexpal 正则表达式实时调试工具
  9. Java设计模式—责任链模式
  10. 我是如何用Worktile进行敏捷开发的