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中的原型prototype
Aug 13 Javascript
js实现根据身份证号自动生成出生日期
Dec 15 Javascript
jQuery实现网页顶部固定导航效果代码
Dec 24 Javascript
jQuery Easyui datagrid/treegrid 清空数据
Jul 09 Javascript
js浏览器html5表单验证
Oct 17 Javascript
Angular 常用指令实例总结整理
Dec 13 Javascript
微信小程序 css使用技巧总结
Jan 09 Javascript
详解在Vue中有条件地使用CSS类
Sep 30 Javascript
基于zTree树形菜单的使用实例
Dec 25 Javascript
JavaScript定时器常见用法实例分析
Nov 15 Javascript
js实现页面图片消除效果
Mar 24 Javascript
五句话帮你轻松搞定js原型链
Dec 09 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
德劲1103的维修打理经验
2021/03/02 无线电
php中取得URL的根域名的代码
2011/03/23 PHP
php5.2以下版本无json_decode函数的解决方法
2014/05/25 PHP
php中最简单的字符串匹配算法
2014/12/16 PHP
php设计模式之职责链模式定义与用法经典示例
2019/09/19 PHP
javascript-TreeView父子联动效果保持节点状态一致
2007/08/12 Javascript
javascript中的new使用
2010/03/20 Javascript
ie与ff下的event事件使用介绍
2013/11/25 Javascript
Ext4.2的Ext.grid.plugin.RowExpander无法触发事件解决办法
2014/08/15 Javascript
Jquery树插件zTree用法入门教程
2015/02/17 Javascript
JavaScript中定义函数的三种方法
2015/03/12 Javascript
JavaScript对象反射用法实例
2015/04/17 Javascript
jquery简单实现幻灯片的方法
2015/08/03 Javascript
浅析Ajax语法
2016/12/05 Javascript
jQuery实现联动下拉列表查询框
2017/01/04 Javascript
详解nodejs模板引擎制作
2017/06/14 NodeJs
Vue利用canvas实现移动端手写板的方法
2018/05/03 Javascript
koa+jwt实现token验证与刷新功能
2019/05/30 Javascript
原生JavaScript之es6中Class的用法分析
2020/02/23 Javascript
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
python提取内容关键词的方法
2015/03/16 Python
详解python实现读取邮件数据并下载附件的实例
2017/08/03 Python
Python cookbook(数据结构与算法)筛选及提取序列中元素的方法
2018/03/19 Python
numpy中矩阵合并的实例
2018/06/15 Python
Python3爬虫学习之爬虫利器Beautiful Soup用法分析
2018/12/12 Python
python基于SMTP协议发送邮件
2019/05/31 Python
Python列表对象实现原理详解
2019/07/01 Python
linux mint中搜狗输入法导致pycharm卡死的问题
2020/10/28 Python
IE浏览器单独写CSS样式的几种方法
2014/10/14 HTML / CSS
CSS3实现点击放大的动画实例代码
2017/02/27 HTML / CSS
详解canvas绘制网络字体几种方法
2019/08/27 HTML / CSS
俄罗斯在线手表和珠宝商店:AllTime
2019/09/28 全球购物
护理职业生涯规划书
2014/01/24 职场文书
《飞向蓝天的恐龙》教学反思
2014/04/09 职场文书
公司表扬信格式
2015/05/04 职场文书
2016年小学感恩节活动总结
2016/04/01 职场文书