1.页面基本元素
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="x" uri="http://java.sun.com/jsp/jstl/xml" %>
<%@ taglib uri="/priveliege" prefix="privilege" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>表格操作 - layui</title>
<link rel="stylesheet" href="${pageContext.request.contextPath}/layui/src/css/layui.css">
<style>
body{padding: 20px; /*overflow-y: scroll;*/}
</style>
</head>
<body>
<table id="userTable" lay-filter="test"></table>
<script type="text/html" id="barDemo">
<div>
<privilege:operation operationId="10004" clazz="layui-btn layui-btn-xs" onClick="updateUserDialog()" name="修改" iconCls="icon-edit" layEvent="edit" ></privilege:operation>
<privilege:operation operationId="10018" clazz="layui-btn layui-btn-danger layui-btn-xs" onClick="" name="删除" iconCls="icon-remove" layEvent="del"></privilege:operation>
</div>
</script>
<script src="${pageContext.request.contextPath}/layui/src/layui.js" charset="utf-8"></script>
<script src="${pageContext.request.contextPath}/common/js/jquery-1.12.3.js" charset="utf-8"></script>
<!-- 需要弹出的修改和添加员工界面 -->
<div class="layui-row" id="popUpdateTest" style="display:none;">
<div class="layui-col-md10">
<form class="layui-form" lay-filter="formTestFilter" id="addAndUpdateEmployeeForm">
<div class="layui-form-item">
<label class="layui-form-label">用户名:</label>
<div class="layui-input-inline">
<input type="text" name="userName" class="layui-input">
</div>
<label class="layui-form-label">密码:</label>
<div class="layui-input-inline">
<input type="text" name="password" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">角色:</label>
<div class="layui-input-inline">
<input type="text" name="roleName" class="layui-input">
</div>
<div class="layui-input-inline">
<button type="button" οnclick="selectRole()" class="layui-btn layui-btn-normal">角色名称</button>
</div>
</div>
<div class="layui-form-item">
<label class="layui-form-label">备注:</label>
<div class="layui-input-block">
<textarea placeholder="请输入内容" class="layui-textarea" name="userDescription"></textarea>
</div>
</div>
<div class="layui-form-item">
<div class="layui-input-block">
<button type="button" class="layui-btn layui-btn-normal">提交</button>
</div>
</div>
</form>
</div>
</div>
</body>
2.渲染table数据表格
<script charset="utf-8" >
var tableIns;
var popForm;
layui.use(["form","table"], function(){
var table = layui.table;
var form = layui.form;
popForm=layui.form;
//方法级别渲染
//添加返回值,目的为了“重载”。
tableIns = table.render({
elem: '#userTable'
,height: 450
,url: '${pageContext.request.contextPath}/cacUser/userList.do'
,method: 'post'
,request: {
pageName: 'curr' //页码的参数名称,默认:page
,limitName: 'limit' //每页数据量的参数名,默认:limit
}
,page:true
,id: 'testReload'
,limit: 5
,limits:[5,10,15,20,50]//每页条数的选择项,默认:[10,20,30,40,50,60,70,80,90]。优先级低于 page 参数中的 limits 参数。
,toolbar: '#toolbarDemo'
,cols: [[
{type: 'checkbox', fixed: 'left'}
,{field:'userName', title:'用户名', width:150, edit: 'text'}
,{field:'password', title:'密码', width:150}
,{field:'roleName', title:'用户角色', width:150, edit: 'text', sort: true}
,{field:'userDescription', title:'备注', width:150}
,{fixed: 'right', title:'操作', toolbar: '#barDemo', width:150}
]]
});
//搜索查询
var $ = layui.$, active = {
reload: function(){
var userName = $('#userName');
var roleId = $('#roleId option:selected');
//执行重载
//testReload为table 的id标识
table.reload('testReload', {
page: {
curr: 1 //重新从第 1 页开始
}
,where: {
userName: userName.val()
,roleId: roleId.val()
}
});
}
};
$('.layui-btn').on('click', function(){
var type = $(this).data('type');
active[type] ? active[type].call(this) : '';
});
3.监听点击事件
//监听工具条
table.on('tool(test)', function(obj){
var data = obj.data;
//formData = data;
if(obj.event === 'del'){
layer.confirm('真的删除行么', function(index){
obj.del();
layer.close(index);
});
} else if(obj.event === 'edit'){
layer.open({
//layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)
type:1,
title:"修改用户信息",
area: ['70%','70%'],
content:$("#popUpdateTest").html()
});
setFormValue(data);//动态向表单赋值
}
});
4.动态向表单添加数据
function setFormValue(data){
popForm.val("formTestFilter", {
"userName":data.userName
,"password":data.password
,"roleName":data.roleName
,"userDescription":data.userDescription
});
popForm.render(null,'formTestFilter')
}