Layui穿梭框的使用

Layui穿梭框的使用


自己学习中用到了Layui穿梭框的使用;

1.页面

注意:需要引入layui的layui.css和layui.all.js文件;

<body>
		<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
  			<legend>穿梭框使用</legend>
		</fieldset>
		<div class="layui-btn-container">
		  <button type="button" class="layui-btn" lay-demotransferactive="getData">获取右侧数据</button>
		  <button type="button" class="layui-btn" lay-demotransferactive="reload">重新加载</button>
		</div>
		<div id="test1" class="demo-transfer" align="left"></div>
</body>

2.js代码

<script type="text/javascript">
		layui.use(['transfer','util'],function(){
			var $=layui.$;
			var transfer=layui.transfer;
			var util=layui.util;
			
			//1.模拟数据
			var data1=[
				{"value": "1", "title": "张三"},
				{"value": "2", "title": "李四"},
				{"value": "3", "title": "王五","disabled": true},
				{"value": "4", "title": "赵六"},
				{"value": "5", "title": "王子"},
				{"value": "6", "title": "小红"},
				{"value": "7", "title": "小zhang","checked": true},
			];
			
			//2.数据格式解析
			  transfer.render({
			    elem: '#test1'
		   		,title: ['未选数据', '已选数据']//自定义标题
			   	,width: 200 //定义宽度
			 	,height: 300 //定义高度
			    ,parseData: function(res){//数据参数来源data1转换处理
			      return {
			        "value": res.value //data1属性
			        ,"title": res.title//data1属性
			        ,"disabled":res.disabled // false  //是否禁用
			        ,"checked":res.checked// false //是否选中
			      }
			    }
			    ,data: data1//数据参数来源
			    ,showSearch: true//显示搜索框
			    ,id:"keyPro"//唯一标识
			   	,value:['6']//用于回显或默认选中
			  });
			
			//3.util监听事件
			util.event('lay-demotransferactive',{
				getData:function(othis){//获取右侧数据
					var getData = transfer.getData('keyPro'); //唯一标识
					layer.alert(JSON.stringify(getData));
				},
				reload:function(){//重新加载
					transfer.reload('keyPro',{
			       		 value: ['6']
					});
				}
			});
		})
	</script>

3.展示

在这里插入图片描述

4.案例

<body>
	<fieldset class="layui-elem-field layui-field-title" style="margin-top: 30px;">
	 			<legend><i class="layui-icon layui-icon-util" style="font-size: 22px; color: gray;"></i>穿梭配置</legend>
	</fieldset>
	
	<div id="TEST" class="demo-transfer" align="left"></div><br>
	<div class="layui-btn-container" style="margin-left: 40%">
	  <button type="button" class="layui-btn" lay-demotransferactive="getData">保存</button>
	</div>	
<script type="text/javascript">
	 layui.use(['transfer','util','layer'],function(){
		var $=layui.$;
		var transfer=layui.transfer;
		var layer = layui.layer;
		var util=layui.util;
		
		//1.模拟数据
		var demo1='${demo1}';//后台json串
		demo1 = JSON.parse(demo1);
		var values=new Array();
		var demo2='${demo2}';//后台json串
		demo2 = JSON.parse(demo2);
		for(var i=0;i<demo2.length;i++){
			values.push(demo2[i].demo1Id);
		}
		
		//2.数据格式解析
		  transfer.render({
		    elem: '#TEST'
	   		,title: ['左侧数据', '右侧数据']//自定义标题
		   	,width: 280 //定义宽度
		 	,height: 340 //定义高度
		    ,parseData: function(res){//数据参数来源data转换处理
		      return {
		        "value": res.id //data属性
		        ,"title": res.name//data属性
		      }
		    }
		    ,data: demo1//数据参数来源
		    ,showSearch: true//显示搜索框
		    ,id:"keyPro"//唯一标识
		   	,value:values  //用于回显或默认选中
		  });
		
		//3.util监听事件
		util.event('lay-demotransferactive',{
			getData:function(othis){//获取右侧数据
				var getData = transfer.getData('keyPro'); //唯一标识
				var ids=new Array();
	        	for(var i=0;i<getData.length;i++){
	        		ids.push(getData[i].value);
	        	}
	        	if(ids.sort().toString()==values.sort().toString()){
	        		return layer.msg("穿梭配置没有改变,请勿重复提交!", {icon: 5});
	        	}
				layer.confirm('确定要修改穿梭配置吗?',function(index){
	        		editVerify(ids);
	        	})
			}
		});
		//提交后台
		function editVerify(ids){
			$.ajax({
				type : 'POST',
				traditional:true,
				data : {ids:ids},
				url : "${pageContext.request.contextPath}/autoVerify/editVerify",
				success : function(result) {
					var resultContent = result.msg;
					var resultSuccess = result.success;
					layer.open({
						content : resultContent,
						btn : [ '确定' ],
						yes : function(index,layero) {
							if (true == resultSuccess) {
								window.location.reload();//刷新页面
							} 
							layer.close(index);
						}
					});
				}
			});
		}
	})
</script>
</body>

在这里插入图片描述

  • 3
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
layui 穿梭(Transfer)是一个用于在两个列表之间移动数据的组件。它可以通过前后端的交互来获取和更新数据。下面是两种实现数据交互的方法: 1. 后端获取数据:通过后端接口获取数据,并将数据传递给穿梭组件。在后端,你可以使用任何你熟悉的编程语言和架来实现数据的获取和处理。在前端,你需要使用 layui穿梭组件,并通过 AJAX 请求将数据传递给后端接口。具体的实现步骤如下: - 在前端页面中,创建一个 div 元素,并设置一个唯一的 id,用于放置穿梭组件。 - 在后端,创建一个接口用于获取数据。你可以使用任何你熟悉的后端架来实现这个接口。 - 在前端的 JavaScript 代码中,使用 layui穿梭组件,并通过 AJAX 请求将数据传递给后端接口。 - 在后端接口中,获取请求中的数据,并进行相应的处理。然后将处理后的数据返回给前端。 - 在前端的 JavaScript 代码中,接收后端返回的数据,并将数据传递给穿梭组件进行展示。 以下是一个示例代码: ```html <div id="test4" class="demo-transfer"></div> ``` ```javascript layui.use(['transfer'], function(){ var transfer = layui.transfer; // 通过 AJAX 请求获取数据 $.ajax({ url: 'your_backend_api_url', type: 'GET', success: function(res){ // 将数据传递给穿梭组件 transfer.render({ elem: '#test4', data: res.data // 假设后端返回的数据为 {data: []} }); } }); }); ``` 2. 前端获取数据:在前端页面中,你可以直接定义一个数组来存储数据,并将数据传递给穿梭组件。具体的实现步骤如下: - 在前端页面中,创建一个 div 元素,并设置一个唯一的 id,用于放置穿梭组件。 - 在前端的 JavaScript 代码中,定义一个数组来存储数据,并将数据传递给穿梭组件进行展示。 以下是一个示例代码: ```html <div id="test4" class="demo-transfer"></div> ``` ```javascript layui.use(['transfer'], function(){ var transfer = layui.transfer; // 定义数据数组 var data = [ {value: '1', title: '选项1'}, {value: '2', title: '选项2'}, {value: '3', title: '选项3'} ]; // 将数据传递给穿梭组件 transfer.render({ elem: '#test4', data: data }); }); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值