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 Sort 表格排序
Oct 31 Javascript
ie下jquery.getJSON的缓存问题的处理方法
Mar 29 Javascript
让低版本浏览器支持input的placeholder属性(js方法)
Apr 03 Javascript
原生JS实现表单checkbook获取已选择的值
Jul 21 Javascript
Jquery ajax执行顺序 返回自定义错误信息(实例讲解)
Nov 06 Javascript
Knockout数组(observable)使用详解示例
Nov 15 Javascript
javascript 动态样式添加的简单实现
Oct 11 Javascript
jQuery Ajax向服务端传递数组参数值的实例代码
Sep 03 jQuery
Vue.js组件间通信方式总结【推荐】
Nov 23 Javascript
基于Vue+ElementUI的省市区地址选择通用组件
Nov 20 Javascript
javascript 设计模式之组合模式原理与应用详解
Apr 08 Javascript
Vue v-for中的 input 或 select的值发生改变时触发事件操作
Aug 31 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 echo()和print()、require()和include()函数区别说明
2010/03/27 PHP
Php Ctemplate引擎开发相关内容
2012/03/03 PHP
PHP实现从上往下打印二叉树的方法
2018/01/18 PHP
php中访问修饰符的知识点总结
2019/01/27 PHP
CheckBox 如何实现全选?
2006/06/23 Javascript
菜单效果
2006/10/14 Javascript
Confirmer JQuery确认对话框组件
2010/06/09 Javascript
推荐10个超棒的jQuery工具提示插件
2011/10/11 Javascript
自己实现string的substring方法 人民币小写转大写,数字反转,正则优化
2012/09/02 Javascript
jQuery ajax serialize() 方法使用示例
2014/11/02 Javascript
SyntaxHighlighter 3.0.83使用笔记
2015/01/26 Javascript
jQuery支持添加事件的日历特效代码分享(3种样式)
2015/08/24 Javascript
果断收藏9个Javascript代码高亮脚本
2016/01/06 Javascript
快速解决Canvas.toDataURL 图片跨域的问题
2016/05/10 Javascript
Bootstrap组件系列之福利篇几款好用的组件(推荐二)
2016/07/12 Javascript
使用JavaScript判断用户输入的是否为正整数(两种方法)
2017/02/05 Javascript
js实现下拉框效果(select)
2017/03/28 Javascript
nodejs个人博客开发第三步 载入页面
2017/04/12 NodeJs
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
微信小程序多张图片上传功能
2017/06/07 Javascript
echarts鼠标覆盖高亮显示节点及关系名称详解
2018/03/17 Javascript
vue路由前进后退动画效果的实现代码
2018/12/10 Javascript
基于Vue SEO的四种方案(小结)
2019/07/01 Javascript
JS数组方法join()用法实例分析
2020/01/18 Javascript
原生JS实现拖拽功能
2020/12/16 Javascript
python目录操作之python遍历文件夹后将结果存储为xml
2014/01/27 Python
Windows上配置Emacs来开发Python及用Python扩展Emacs
2015/11/20 Python
python测试mysql写入性能完整实例
2018/01/18 Python
Python 使用元类type创建类对象常见应用详解
2019/10/17 Python
python统计字符的个数代码实例
2020/02/07 Python
Python生成六万个随机,唯一的8位数字和数字组成的随机字符串实例
2020/03/03 Python
门卫工作岗位职责
2013/12/17 职场文书
村官学习十八大感想
2014/01/15 职场文书
党员公开承诺事项
2014/03/25 职场文书
化妆品活动策划方案
2014/05/23 职场文书
小学音乐课教学反思
2016/02/18 职场文书