zoukankan      html  css  js  c++  java
  • 用jquery控制listbox中项的移动,并排序

      以下是用jquery控制ASP.NET中的两个asp:listbox控件中选择项的移动:

    首先是html代码,页面上放2个listbox控件和2个按钮用于移动项目

    代码
      <table border="0"><tr><td width="156">全部水果:</td><td width="142">&nbsp;</td><td width="482">我挑选的:</td></tr><tr><td rowspan="2"><asp:ListBox SelectionMode="Multiple" ID="listall" Rows="12" Width="156" runat="server"></asp:ListBox></td><td height="41" align="center"><input type="button" id="btnleftmove" value="&gt;&gt;&gt;" onclick="move('listall','listmy');"/><br /><br /><input type="button" id="btnrighttmove" value="&lt;&lt;&lt;" onclick="move('listmy','listall');"/></td><td rowspan="2"><asp:ListBox SelectionMode="Multiple" ID="listmy" Rows="12" Width="156" runat="server"></asp:ListBox></td></tr></table>  
      
    <!-- 这里放个隐藏域用于取值 -->
      
    <input id="hidValue" runat="server" type="hidden" /> 

    下面是在.cs文件中绑定一些数据

    Code

    在实际使用时可根据数据库中的字段排序

    下面是jquery的代码:

    代码
    //移动用户选择的角色 //setname:要移出数据的列表名称 getname:要移入数据的列表名称function move(setname,getname)
    {
     
    var size=$("#"+setname+" option").size();
     
    var selsize=$("#"+setname+" option:selected").size();
     
    if(size>0&&selsize>0)
     {
         $.each($(
    "#"+setname+" option:selected"), function(id,own){
         
    var text=$(own).text();
         
    var tag=$(own).attr("tag");
         $(
    "#"+getname).prepend("<option tag=\""+tag+"\">"+text+"</option>"); 
         $(own).remove(); 
         $(
    "#"+setname+"").children("option:first").attr("selected",true);

    });       
        
    //赋值到hidvalue中
            var strvalue="";  
            $.each($(
    "#listmy option"), function(id,own){
                strvalue
    +=$(own).val();
                
    if(id!=$("#listmy option").size()-1)
                    strvalue
    +=",";
            });
            $(
    "#hidUserRole").val(strvalue);
     }

     
    //重新排序   
     $.each($("#"+getname+" option"), function(id,own){
           orderrole(getname);
         });
    }

    //按首字母排序角色列表function orderrole(listname)
    {
     
    var size=$("#"+listname+" option").size();
     
    var one=$("#"+listname+" option:first-child");  
     
    if(size>0)
     {
         
    var text=$(one).text();
         
    var tag=parseInt($(one).attr("tag"));
         
    //循环列表中第一项值下所有元素     $.each($(one).nextAll(), function(id,own){
          var nextag=parseInt($(own).attr("tag"));
          
    if(tag>nextag)
         { 
          $(one).remove();
          $(own).after(
    "<option tag=\""+tag+"\">"+text+"</option>");
          one
    =$(own).next();
         }
         });
     }
    }

    这样就完成了简单的js控制两个列表项的值移动。

  • 相关阅读:
    ceph中pool的管理
    ubuntu 16.04安装ceph集群(双节点)
    win7设置开机启动virtualBOX虚拟机
    Linux Linux程序练习十九
    Linux Linux程序练习十八
    Linux Linux程序练习十七
    Linux 网络编程详解十二
    Linux socket多进程服务器框架三
    Linux socket多进程服务器框架二
    Linux socket多进程服务器框架一
  • 原文地址:https://www.cnblogs.com/kaka8384/p/1432628.html
Copyright © 2011-2022 走看看