jquery控制listbox中项的移动并排序的实现代码


Posted in Javascript onSeptember 28, 2010

首先是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(); 
} 
}); 
} 
}
Javascript 相关文章推荐
捕获关闭窗口的脚本
Jan 10 Javascript
高效率JavaScript编写技巧整理
Aug 23 Javascript
JS父页面与子页面相互传值方法
Mar 05 Javascript
实例详解JavaScript获取链接参数的方法
Jan 01 Javascript
iscroll-probe实现下拉刷新和下拉加载效果
Jun 28 Javascript
node前端模板引擎Jade之标签的基本写法
May 11 Javascript
详解搭建es6+devServer简单开发环境
Sep 25 Javascript
优雅地使用loading(推荐)
Apr 20 Javascript
移动端手指操控左右滑动的菜单
Sep 08 Javascript
webgl实现物体描边效果的方法介绍
Nov 27 Javascript
ElementUI Tree 树形控件的使用并给节点添加图标
Feb 27 Javascript
基于vue实现简易打地鼠游戏
Aug 21 Javascript
JQuery UI DatePicker中z-index默认为1的解决办法
Sep 28 #Javascript
13个绚丽的Jquery 界面设计网站推荐
Sep 28 #Javascript
基于Jquery的动态添加控件并取值的实现代码
Sep 24 #Javascript
封装的原生javascript弹出层代码
Sep 24 #Javascript
js最简单的拖拽效果实现代码
Sep 24 #Javascript
JavaScript 设计模式 安全沙箱模式
Sep 24 #Javascript
IE无法设置短域名下Cookie
Sep 23 #Javascript
You might like
php生成文件
2007/01/15 PHP
php正则preg_replace_callback函数用法实例
2015/06/01 PHP
php生成验证码函数
2015/10/20 PHP
PHP的反射机制实例详解
2017/03/29 PHP
javascript下IE与FF兼容函数收集
2008/09/17 Javascript
js的写法基础分析
2011/01/17 Javascript
AngularJS学习笔记之TodoMVC的分析
2015/02/22 Javascript
使用Promise链式调用解决多个异步回调的问题
2017/01/15 Javascript
详细分析Node.js 多进程
2020/06/22 Javascript
[48:38]DOTA2亚洲邀请赛 3.31 小组赛 B组 Mineski vs Secret
2018/03/31 DOTA
[01:10:58]Spirit vs NB Supermajor小组赛 A组败者组决赛 BO3 第二场 6.2
2018/06/03 DOTA
[00:10]DOTA2 TI9勇士令状明日上线
2019/05/07 DOTA
[01:16:12]完美世界DOTA2联赛PWL S2 FTD vs Inki 第一场 11.21
2020/11/23 DOTA
Python实现截屏的函数
2015/07/26 Python
使用Python写一个小游戏
2018/04/02 Python
Python3实现转换Image图片格式
2018/06/21 Python
解决使用PyCharm时无法启动控制台的问题
2019/01/19 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
2019/04/11 Python
在Tensorflow中查看权重的实现
2020/01/24 Python
Windows下实现将Pascal VOC转化为TFRecords
2020/02/17 Python
Python趣味实例,实现一个简单的抽奖刮刮卡
2020/07/18 Python
美国学校用品、教室和教学商店:Discount School Supply
2018/04/04 全球购物
雷曼兄弟的五金店:Lehman’s Hardware Store
2019/04/10 全球购物
Waterford英国官方网站:世界上最受欢迎的优质水晶品牌
2019/08/17 全球购物
波兰化妆品和护肤品购物网站:eKobieca
2019/08/30 全球购物
如何打印出当前源文件的文件名以及源文件的当前行号
2015/04/05 面试题
如何判断计算机可能已经中马
2013/03/22 面试题
掌上明珠Java程序员面试总结
2016/02/23 面试题
九年级物理教学反思
2014/01/29 职场文书
高等教育专业自荐信范文
2014/03/26 职场文书
乡镇干部个人对照检查材料思想汇报
2014/10/04 职场文书
酒店人事专员岗位职责
2015/04/07 职场文书
车辆挂靠协议书
2016/03/23 职场文书
vue-element-admin项目导入和导出的实现
2021/05/21 Vue.js
解决ObjectMapper.convertValue() 遇到的一些问题
2021/06/30 Java/Android
mysql事务隔离级别详情
2021/10/24 MySQL