ligerUI---ListBox(列表框可移动的实例)


Posted in Javascript onNovember 28, 2017

写在前面:

对于可移动的列表框,ligerui中也对其进行了封装,可以直接照着demo拿来用,不过那都是直接在页面上静态初始化的数据,那么如何从后台获取?

前面有了对ligerui的一些组件的使用经验后,在这里其实 对于从后台获取数据在前台页面进行显示,都大同小异。也不是很难。

即要么是在ligerui组件中直接使用其url属性向后台发送请求,要么是单独发送一个ajax请求拿到数据后,通过获取组件,然后设置其data属性。嘿嘿。。

下面就直接使用url属性来发送请求吧。。。。。

前台页面:

<script type="text/javascript">
 var box1,box2;

 $(function() {

  //初始化8个listbox
  box1 = $("#listbox1").ligerListBox({
   isShowCheckBox: true,
   isMultiSelect: true,
   height: 140,
   //发送给后台的请求
   url: '${baseURL}/getDeviceByAll.action',
  });
  box2 = $("#listbox2").ligerListBox({
   isShowCheckBox: true,
   isMultiSelect: true,
   height: 140,

  });

  var tempData2 = [{id:1,text:"aa"},{id:2,text:"bb"}];

  //button点击事件
  $("#btn1").click(function(){
   setListBoxData(tempData2);
  });

 });



 function setListBoxData(tempData2){
  //貌似只能通过id来移除了 用removeItems不可以达到效果
  //例如移除id为1,2的然后添加到左边
  for(var i=0;i<tempData2.length;i++){
   box1.removeItem(tempData2[i].id);
  }
  box2.addItems(tempData2);
 }

 //===========listbox四个按钮点击相关函数===========
 function moveToLeft1()
 {
  var selecteds = box2.getSelectedItems();
  if (!selecteds || !selecteds.length) return;
  box2.removeItems(selecteds);
  box1.addItems(selecteds);

 }

 function moveToRight1()
 {
  var selecteds = box1.getSelectedItems();
  if (!selecteds || !selecteds.length) return;
  box1.removeItems(selecteds);
  box2.addItems(selecteds);


 }
 function moveAllToLeft1()
 {
  var selecteds = box2.data;
  if (!selecteds || !selecteds.length) return;
  box1.addItems(selecteds);
  box2.removeItems(selecteds);

 }
 function moveAllToRight1()
 {
  var selecteds = box1.data;
  if (!selecteds || !selecteds.length) return;
  box2.addItems(selecteds);
  box1.removeItems(selecteds);

 }




</script>
<style type="text/css">
 .middle input {
  display: block;width:30px; margin:2px;
 }
</style>
</head>
<body>

  <div>
   <div style="float:left;font-size:15px;width:150px;text-align: center">Support Devices:</div>
   <div style="margin:4px;float:left;">
    <div id="listbox1"></div>
   </div>
   <div style="margin:4px;float:left;" class="middle">
    <input type="button" onclick="moveToLeft1()" value="<" />
    <input type="button" onclick="moveToRight1()" value=">" />
    <input type="button" onclick="moveAllToLeft1()" value="<<" />
    <input type="button" onclick="moveAllToRight1()" value=">>" />
   </div>
   <div style="margin:4px;float:left;">
    <div id="listbox2"></div>
   </div>
  </div>

  <input type="button" value="点击" id="btn1">


</body>

后台action:

private JSONArray jsonArray;
 public JSONArray getJsonArray() {
  return jsonArray;
 }
 public String getDeviceByAll() throws Exception{
  List<Device> deviceList = deviceService.getAll(Device.class);

  jsonArray = new JSONArray();
  for(Device device:deviceList){
   JSONObject obj = new JSONObject();
   //listbox对应的数据格式要有text、id字段
   obj.put("id",device.getDevId());
   obj.put("text",device.getDevName());
   jsonArray.add(obj);

  }
  return SUCCESS;
 }

好啦,这样就成功了,当然 我这里是省略了后台如何将json数据传递到前台,因为在我写ligerui的其他组件(ligerGrid,ligerForm)的时候已经写过了,就不再重复说了

效果演示截图:(省略向左向右的移动效果图)

ligerUI---ListBox(列表框可移动的实例)

在不勾选数据的情况下,点击“点击”按钮,的效果图如下:
ligerUI---ListBox(列表框可移动的实例)

其实在移除的过程中,一开始使用的removeItems()方法,但是测试貌似不可以移除,故采用removeItem()的方法,根据id来移除。。

Javascript 相关文章推荐
js读取本地excel文档数据的代码
Nov 11 Javascript
js判断数据类型如判断是否为数组是否为字符串等等
Jan 15 Javascript
使用Sticker.js实现贴纸效果
Jan 28 Javascript
JavaScript错误处理
Feb 03 Javascript
jqGrid表格应用之新增与删除数据附源码下载
Dec 02 Javascript
Javascript类型系统之undefined和null浅析
Jul 13 Javascript
Javascript数组循环遍历之forEach详解
Nov 07 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
Jan 20 Javascript
ES6中Symbol类型用法实例详解
Apr 06 Javascript
解决vue处理axios post请求传参的问题
Mar 05 Javascript
简单通过settimeout看javascript的运行机制
May 10 Javascript
解决vue $http的get和post请求跨域问题
Jun 07 Vue.js
基于vue2实现上拉加载功能
Nov 28 #Javascript
微信小程序模板和模块化用法实例分析
Nov 28 #Javascript
基于Vue的移动端图片裁剪组件功能
Nov 28 #Javascript
javaScript canvas实现(画笔大小 颜色 橡皮的实例)
Nov 28 #Javascript
基于Vue框架vux组件库实现上拉刷新功能
Nov 28 #Javascript
JavaScript中关于class的调用方法
Nov 28 #Javascript
基于vue+canvas的excel-like组件实例详解
Nov 28 #Javascript
You might like
全国FM电台频率大全 - 16 河南省
2020/03/11 无线电
php常用数组函数实例小结
2016/12/29 PHP
让ThinkPHP的模板引擎达到最佳效率的方法详解
2017/03/14 PHP
PHP 扩展Memcached命令用法实例总结
2020/06/04 PHP
告诉大家什么是JSON
2008/06/10 Javascript
JS IE和FF兼容性问题汇总
2009/02/09 Javascript
jquery下json数组的操作实现代码
2010/08/09 Javascript
ExtJS DOM元素操作经验分享
2013/08/28 Javascript
js 页面元素的几个用法总结
2013/11/18 Javascript
JS批量操作CSS属性详细解析
2013/12/16 Javascript
封装好的一个万能检测表单的方法
2015/01/21 Javascript
基于jquery步骤进度条源码分享
2015/11/12 Javascript
如何使用AngularJs打造权限管理系统【简易型】
2016/05/09 Javascript
JS for...in 遍历语句用法实例分析
2016/08/24 Javascript
vue 实现边输入边搜索功能的实例讲解
2018/09/16 Javascript
微信小程序实现简易table表格
2020/06/19 Javascript
浅谈express.js框架中间件(middleware)
2019/04/07 Javascript
Vue2.x通用条件搜索组件的封装及应用详解
2019/05/28 Javascript
详解JWT token心得与使用实例
2019/08/02 Javascript
原生js实现无缝轮播图效果
2021/01/28 Javascript
[54:45]2018DOTA2亚洲邀请赛 4.1 小组赛 A组 Optic vs OG
2018/04/02 DOTA
Pyramid Mako模板引入helper对象的步骤方法
2013/11/27 Python
使用XML库的方式,实现RPC通信的方法(推荐)
2017/06/14 Python
Python 查看文件的编码格式方法
2017/12/21 Python
Python多线程原理与用法实例剖析
2019/01/22 Python
Python自动化完成tb喵币任务的操作方法
2019/10/30 Python
AmazeUI 面板的实现示例
2020/08/17 HTML / CSS
国际象棋商店:The Chess Store
2018/07/09 全球购物
Java基础知识面试题
2014/03/25 面试题
银行青年文明号事迹材料
2014/05/31 职场文书
教师三严三实对照检查材料
2014/09/25 职场文书
决心书格式范文
2015/09/23 职场文书
CSS 实现多彩、智能的阴影效果
2021/05/12 HTML / CSS
「约定的梦幻岛」作画发布诺曼生日新绘
2022/03/21 日漫
python中redis包操作数据库的教程
2022/04/19 Python
Python docx库删除复制paragraph及行高设置图片插入示例
2022/07/23 Python