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 相关文章推荐
用js自动判断浏览器分辨率的代码
Jan 28 Javascript
asp.net+js 实现无刷新上传解析csv文件的代码
May 17 Javascript
JavaScript 在网页上单击鼠标的地方显示层及关闭层
Dec 30 Javascript
浅谈js算法和流程控制
Dec 29 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
Jan 20 Javascript
JS触摸与手势事件详解
May 09 Javascript
bootstrap基本配置_动力节点Java学院整理
Jul 14 Javascript
js中apply与call简单用法详解
Nov 06 Javascript
bootstrap-Treeview实现级联勾选
Nov 23 Javascript
JS实现读取xml内容并输出到div中的方法示例
Apr 19 Javascript
JS实现获取数组中最大值或最小值功能示例
Mar 02 Javascript
Smartour 让网页导览变得更简单(推荐)
Jul 19 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
多文件上传的例子
2006/10/09 PHP
使用无限生命期Session的方法
2006/10/09 PHP
聊天室php&amp;mysql(二)
2006/10/09 PHP
PHP多维数组转一维数组的简单实现方法
2015/12/23 PHP
PHP数据库处理封装类实例
2016/12/24 PHP
Laravel框架定时任务2种实现方式示例
2018/12/08 PHP
QQ邮箱的一个文本编辑器代码
2007/03/14 Javascript
Javascript学习笔记二 之 变量
2010/12/15 Javascript
js Array对象的扩展函数代码
2013/04/24 Javascript
js图片预加载示例
2014/04/30 Javascript
基于NodeJS的前后端分离的思考与实践(一)全栈式开发
2014/09/26 NodeJs
浅谈javascript中字符串String与数组Array
2014/12/31 Javascript
DOM基础教程之使用DOM
2015/01/19 Javascript
Jquery 实现图片轮换
2015/01/28 Javascript
js实现界面向原生界面发消息并跳转功能
2016/11/22 Javascript
jQuery插件FusionCharts实现的3D帕累托图效果示例【附demo源码】
2017/03/25 jQuery
JS中type=&quot;button&quot;和type=&quot;submit&quot;的区别
2017/07/04 Javascript
深入理解JavaScript的async/await
2018/08/05 Javascript
Vue中Quill富文本编辑器的使用教程
2018/09/21 Javascript
详解微信小程序开发用户授权登陆
2019/04/24 Javascript
Vue项目服务器部署之子目录部署方法
2019/05/12 Javascript
在vue-cli3.0 中使用预处理器 (Sass/Less/Stylus) 配置全局变量操作
2020/08/10 Javascript
python使用正则搜索字符串或文件中的浮点数代码实例
2014/07/11 Python
使用PM2+nginx部署python项目的方法示例
2018/11/07 Python
如何用python写一个简单的词法分析器
2018/12/18 Python
学习python分支结构
2019/05/17 Python
Python中的pathlib.Path为什么不继承str详解
2019/06/23 Python
python3.6连接mysql数据库及增删改查操作详解
2020/02/10 Python
pytorch中的inference使用实例
2020/02/20 Python
Python连接Impala实现步骤解析
2020/08/04 Python
浅析css3中matrix函数的使用
2016/06/06 HTML / CSS
2014年入党积极分子党校培训心得体会
2014/07/08 职场文书
心得体会的写法
2014/09/05 职场文书
党员民主生活会个人整改措施材料
2014/09/16 职场文书
机关副主任个人四风问题整改措施
2014/09/26 职场文书
2016年秋季运动会通讯稿
2015/11/25 职场文书