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 相关文章推荐
Javascript 读后台cookie代码
Sep 15 Javascript
javascript getElementsByClassName 和js取地址栏参数
Jan 02 Javascript
拥抱模块化的JavaScript
Mar 07 Javascript
vue.js 表格分页ajax 异步加载数据
Oct 18 Javascript
JS实现加载时锁定HTML页面元素的方法
Jun 24 Javascript
浅谈node.js 命令行工具(cli)
May 10 Javascript
微信小程序实现图片上传放大预览删除代码
Jun 28 Javascript
微信小程序API—获取定位的详解
Apr 30 Javascript
使用Vue.set()方法实现响应式修改数组数据步骤
Nov 09 Javascript
基于js实现数组相邻元素上移下移
May 19 Javascript
Openlayers绘制地图标注
Sep 28 Javascript
构建一个JavaScript插件系统
Oct 20 Javascript
基于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
PHP学习之PHP变量
2006/10/09 PHP
SSI指令
2006/11/25 PHP
php中的静态变量的基本用法
2014/03/20 PHP
php5.3提示Function ereg() is deprecated Error问题解决方法
2014/11/12 PHP
微信自定义菜单的处理开发示例
2015/04/16 PHP
Symfony2函数用法实例分析
2016/03/18 PHP
模拟用户操作Input元素,不会触发相应事件
2007/05/11 Javascript
jQuery html()等方法介绍
2009/11/18 Javascript
基于jQuery的投票系统显示结果插件
2011/08/12 Javascript
javascript图片预加载完整实例
2015/12/10 Javascript
使用堆实现Top K算法(JS实现)
2015/12/25 Javascript
node.js express安装及示例网站搭建方法(分享)
2016/08/22 Javascript
关于javascript的一些知识以及循环详解
2016/09/12 Javascript
jquery css实现邮箱自动补全
2016/11/14 Javascript
解决微信内置浏览器返回上一页强制刷新问题方法
2017/02/05 Javascript
jQuery中table数据的值拷贝和拆分
2017/03/19 Javascript
JavaScript实现创建自定义对象的常用方式总结
2018/07/09 Javascript
axios实现简单文件上传功能
2019/09/25 Javascript
WEEX环境搭建与入门详解
2019/10/16 Javascript
[02:33]DOTA2英雄基础教程 司夜刺客
2013/12/04 DOTA
Windows下Python使用Pandas模块操作Excel文件的教程
2016/05/31 Python
用pandas按列合并两个文件的实例
2018/04/12 Python
python opencv实现切变换 不裁减图片
2018/07/26 Python
Linux下python3.7.0安装教程
2018/07/30 Python
Python2.7版os.path.isdir中文路径返回false的解决方法
2019/06/21 Python
使用selenium和pyquery爬取京东商品列表过程解析
2019/08/15 Python
Python 绘制可视化折线图
2020/07/22 Python
浅析HTML5的WebSocket与服务器推送事件
2016/02/19 HTML / CSS
幼儿教师工作感言
2014/02/14 职场文书
小学作文评语大全
2014/04/21 职场文书
高中生综合素质自我评价
2015/03/06 职场文书
教学副校长工作总结
2015/08/13 职场文书
婚前协议书怎么写,才具有法律效力呢 ?
2019/06/28 职场文书
高效笔记技巧分享:学会这些让你不再困扰
2019/09/04 职场文书
Python机器学习三大件之一numpy
2021/05/10 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
2021/06/23 Python