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 面向对象的 私有成员和公开成员
May 13 Javascript
JavaScript初学者需要了解10个小技巧
Aug 25 Javascript
jQuery取id有.的值的方法
May 21 Javascript
JS生成不重复随机数组的函数代码
Jun 10 Javascript
jQuery控制文本框只能输入数字和字母及使用方法
May 26 Javascript
浅析上传头像示例及其注意事项
Dec 14 Javascript
原生JS发送异步数据请求
Jun 08 Javascript
vue axios请求拦截实例代码
Mar 29 Javascript
vue.js 添加 fastclick的支持方法
Aug 28 Javascript
JavaScript简单编程实例学习
Feb 14 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
Mar 04 Javascript
Vue两种组件类型:递归组件和动态组件的用法
Aug 06 Javascript
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脚本不报错的原因
2014/06/12 PHP
Yii配置与使用memcached缓存的方法
2016/07/13 PHP
PHP实现图片压缩
2020/09/09 PHP
PHP+百度AI OCR文字识别实现了图片的文字识别功能
2019/05/08 PHP
javascript中对对层的控制
2006/12/29 Javascript
从URL中提取参数与将对象转换为URL查询参数的实现代码
2012/01/12 Javascript
js onkeypress与onkeydown 事件区别详细说明
2012/12/13 Javascript
分享经典的JavaScript开发技巧
2015/11/21 Javascript
浅谈angularjs module返回对象的坑(推荐)
2016/10/21 Javascript
AngularJS中watch监听用法分析
2016/11/04 Javascript
JavaScript中从setTimeout与setInterval到AJAX异步
2017/02/13 Javascript
jQuery插件HighCharts绘制2D柱状图、折线图和饼图的组合图效果示例【附demo源码下载】
2017/03/09 Javascript
微信小程序实现选项卡功能
2020/06/19 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
2018/11/29 Javascript
详解javascript设计模式三:代理模式
2019/03/25 Javascript
vue点击Dashboard不同内容 跳转到同一表格的实例
2020/11/13 Javascript
全面解析js中的原型,原型对象,原型链
2021/01/25 Javascript
python实现将英文单词表示的数字转换成阿拉伯数字的方法
2015/07/02 Python
Python算法输出1-9数组形成的结果为100的所有运算式
2017/11/03 Python
python 获取当天凌晨零点的时间戳方法
2018/05/22 Python
Python3 使用selenium插件爬取苏宁商家联系电话
2019/12/23 Python
详解Python设计模式之策略模式
2020/06/15 Python
使用python matploblib库绘制准确率,损失率折线图
2020/06/16 Python
Keras: model实现固定部分layer,训练部分layer操作
2020/06/28 Python
美国知名的摄影器材销售网站:Adorama
2017/02/01 全球购物
深深扎根运动世界的生活品牌:Tillys
2017/10/30 全球购物
军校大学生个人的自我评价
2014/02/17 职场文书
《雪地里的小画家》教学反思
2014/02/22 职场文书
汉语言文学专业自荐信
2014/06/11 职场文书
镇副书记专题民主生活会对照检查材料思想汇报
2014/10/02 职场文书
对照四风自我剖析材料
2014/10/07 职场文书
机关干部三严三实心得体会
2014/10/13 职场文书
2014年环卫工作总结
2014/11/22 职场文书
英语专业毕业论文答辩开场白
2015/05/27 职场文书
《秋天的图画》教学反思
2016/02/19 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书