jquery控制listbox中项的移动并排序


Posted in Javascript onNovember 12, 2009

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

<table border="0"> 
<tr> 
<td width="156">全部水果:</td> 
<td width="142"> </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=">>>" onclick="move('listall','listmy');"/><br /><br /> 
<input type="button" id="btnrighttmove" value="<<<" 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>

下面是在.cs文件中绑定一些数据
public partial class _Default : System.Web.UI.Page 
{ 
protected void Page_Load(object sender, EventArgs e) 
{ 
if (!IsPostBack) 
{ 
BindData(); 
} 
} private void BindData() 
{ 
ArrayList list=DataArray(); 
for (int i = 0; i < list.Count; i++) 
{ 
listall.Items.Add(list[i].ToString()); 
listall.Items[i].Attributes["tag"] = i.ToString(); //用tag记录排序字段 
} 
} 
private ArrayList DataArray() 
{ 
//用到的一些数据,这里已默认按第一个字的拼音排序 
ArrayList list = new ArrayList(); 
list.Add("草莓"); 
list.Add("梨"); 
list.Add("桔子"); 
list.Add("芒果"); 
list.Add("苹果"); 
list.Add("香蕉"); 
return list; 
} 
}

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

下面是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); 
}); 
} 
//重新排序 
$.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控制两个列表项的值移动。
Javascript 相关文章推荐
用javascript实现的图片马赛克后显示并切换加文字功能
Apr 21 Javascript
jQuery实现跨域
Feb 03 Javascript
深入理解JavaScript系列(45):代码复用模式(避免篇)详解
Mar 04 Javascript
JavaScript使用addEventListener添加事件监听用法实例
Jun 01 Javascript
jquery 追加元素append、prepend、before、after用法与区别分析
Dec 02 Javascript
详解Vue项目编译后部署在非网站根目录的解决方案
Apr 26 Javascript
Vue CLI3搭建的项目中路径相关问题的解决
Sep 17 Javascript
用Fundebug插件记录网络请求异常的方法
Feb 21 Javascript
ES6 Set结构的应用实例分析
Jun 26 Javascript
ES6基础之数组和对象的拓展实例详解
Aug 22 Javascript
vue elementui tree 任意级别拖拽功能代码
Aug 31 Javascript
Axios代理配置及封装响应拦截处理方式
Apr 07 Vue.js
Jquery 获取表单text,areatext,radio,checkbox,select值的代码
Nov 12 #Javascript
两个select之间option的互相添加操作(jquery实现)
Nov 12 #Javascript
XHTML下,JS浮动代码失效的问题
Nov 12 #Javascript
把html页面的部分内容保存成新的html文件的jquery代码
Nov 12 #Javascript
Javascript 定时器调用传递参数的方法
Nov 12 #Javascript
Ext.FormPanel 提交和 Ext.Ajax.request 异步提交函数的区别
Nov 12 #Javascript
JS解析XML的实现代码
Nov 12 #Javascript
You might like
说明的比较细的php 正则学习实例
2008/07/30 PHP
php 购物车的例子
2009/05/04 PHP
《PHP编程最快明白》第四讲:日期、表单接收、session、cookie
2010/11/01 PHP
php中全局变量global的使用演示代码
2011/05/18 PHP
php实现加减法验证码代码
2014/02/14 PHP
PHP中in_array的隐式转换的解决方法
2018/03/06 PHP
php链式操作的实现方式分析
2019/08/12 PHP
JS效率个人经验谈(8-15更新),加入range技巧
2007/01/09 Javascript
jquery提升性能最佳实践小结
2010/12/06 Javascript
ASP.NET jQuery 实例3 (在TextBox里面阻止复制、剪切和粘贴事件)
2012/01/13 Javascript
事件冒泡是什么如何用jquery阻止事件冒泡
2013/03/20 Javascript
parentElement,srcElement的使用小结
2014/01/13 Javascript
jquery中show()、hide()和toggle()用法实例
2015/01/15 Javascript
jQuery实现滚动切换的tab选项卡效果代码
2015/08/26 Javascript
JS使用cookie实现DIV提示框只显示一次的方法
2015/11/05 Javascript
JavaScript代码实现禁止右键、禁选择、禁粘贴、禁shift、禁ctrl、禁alt
2015/11/17 Javascript
详解maxlength属性在textarea里奇怪的表现
2015/12/27 Javascript
jQuery实现弹出窗口弹出div层的实例代码
2017/01/09 Javascript
微信小程序全局变量的设置、使用、修改过程解析
2019/09/24 Javascript
[02:20]DOTA2亚洲邀请赛 EHOME战队出场宣传片
2015/02/07 DOTA
[00:32]2018DOTA2亚洲邀请赛出场——LGD
2018/04/04 DOTA
Python去除字符串两端空格的方法
2015/05/21 Python
Python实现递归遍历文件夹并删除文件
2016/04/18 Python
python使用paramiko实现远程拷贝文件的方法
2016/04/18 Python
如何用Python合并lmdb文件
2018/07/02 Python
python添加模块搜索路径和包的导入方法
2019/01/19 Python
Django+Xadmin构建项目的方法步骤
2019/03/06 Python
解决Pycharm中恢复被exclude的项目问题(pycharm source root)
2020/02/14 Python
Pytest mark使用实例及原理解析
2020/02/22 Python
python怎么调用自己的函数
2020/07/01 Python
如何在Anaconda中打开python自带idle
2020/09/21 Python
求职者应聘的自我评价
2013/10/16 职场文书
安全员岗位职责
2015/02/10 职场文书
严以修身专题学习研讨会发言材料
2015/11/09 职场文书
《我要的是葫芦》教学反思
2016/02/18 职场文书
调研报告的主要写法
2019/04/18 职场文书