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 相关文章推荐
jquery 列表双向选择器之改进版
Aug 09 Javascript
jquery内置验证(validate)使用方法示例(表单验证)
Dec 04 Javascript
控制input输入框中提示信息的显示和隐藏的方法
Feb 12 Javascript
jQuery点击改变class并toggle及toggleClass()方法定义用法
Dec 11 Javascript
JS实现仿饿了么在浏览器标签页失去焦点时网页Title改变
Jun 01 Javascript
vue bootstrap小例子一枚
Jun 09 Javascript
JS使用Prim算法和Kruskal算法实现最小生成树
Jan 17 Javascript
在NPM发布自己造的轮子的方法步骤
Mar 09 Javascript
JS+CSS3实现的简易钟表效果示例
Apr 13 Javascript
详解js常用分割取字符串的方法
May 15 Javascript
JS实现页面跳转与刷新的方法汇总
Aug 30 Javascript
vue使用svg文件补充-svg放大缩小操作(使用d3.js)
Sep 22 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生成扇形比例图实例
2013/11/06 PHP
PHP中的Memcache详解
2014/04/05 PHP
php随机获取金山词霸每日一句的方法
2015/07/09 PHP
thinkphp框架实现数据添加和显示功能
2016/06/29 PHP
PHP操作Redis数据库常用方法示例
2018/08/25 PHP
Laravel 读取 config 下的数据方法
2019/10/13 PHP
Mozilla中显示textarea中选择的文字
2006/09/07 Javascript
基于jquery的inputlimiter 实现字数限制功能
2010/05/30 Javascript
JQuery中的$.getJSON 使用说明
2011/03/10 Javascript
浅谈JavaScript的事件
2015/02/27 Javascript
基于JavaScript创建动态Dom
2015/12/08 Javascript
一起学写js Calender日历控件
2016/04/14 Javascript
判断JS对象是否拥有某属性的方法推荐
2016/05/12 Javascript
JavaScript中apply方法的应用技巧小结
2016/09/29 Javascript
JS添加或修改控件的样式(Class)实现方法
2016/10/15 Javascript
JavaScript简单生成 N~M 之间随机数的方法
2017/01/13 Javascript
ES6中Math对象的部分扩展
2017/02/20 Javascript
layui点击弹框页面 表单请求的方法
2019/09/21 Javascript
TypeScript魔法堂之枚举的超实用手册
2020/10/29 Javascript
[05:03]显微镜下的DOTA2第十期——Ti3豪之超神幽鬼
2014/06/23 DOTA
Python中计算三角函数之cos()方法的使用简介
2015/05/15 Python
Django中使用locals()函数的技巧
2015/07/16 Python
Python 实现 贪吃蛇大作战 代码分享
2016/09/07 Python
Python 中开发pattern的string模板(template) 实例详解
2017/04/01 Python
Django使用Jinja2模板引擎的示例代码
2019/08/09 Python
手把手教你进行Python虚拟环境配置教程
2020/02/03 Python
欧洲最大的笔和书写专家:The Pen Shop
2017/03/19 全球购物
奥地利婴儿用品和玩具购物网站:baby-markt.at
2020/01/26 全球购物
幼儿园大班评语大全
2014/04/17 职场文书
大型活动组织方案
2014/05/10 职场文书
2014大学班主任工作总结
2014/11/08 职场文书
2014年消防工作总结
2014/11/21 职场文书
安装工程师岗位职责
2015/02/13 职场文书
js不常见操作运算符总结
2021/11/20 Javascript
解决Redis启动警告问题
2022/02/24 Redis
Java对文件的读写操作方法
2022/04/29 Java/Android