用layui编写一个动态表格

程序代码

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>动态表格</title>
    <meta http-equiv="Access-Control-Allow-Origin" content="*">
    <link href="layui/css/layui.css" rel="stylesheet">
</head>
<body>

<div class="layui-container">
    <!-- 定义一个div 用于存放table组件-->
    <div id="demo" lay-filter="test"></div>
</div>

<!--  定义工具栏  例如  编辑 ,删除, 查看详情-->
<script type="text/html" id="barDemo">
    <button class="layui-btn layui-btn-xs" lay-event="edit">编辑</button>
    <button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</button>
    <button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="detail">详情</button>
</script>

<!-- 定义表头的工具栏 -->
<script type="text/html" id="tabBarDemo">
    <div class="layui-btn-group">
        <button class="layui-btn layui-btn-xs" lay-event="add">添加</button>
        <button class="layui-btn layui-btn-danger layui-btn-xs" lay-event="import">导入</button>
        <button class="layui-btn layui-btn-normal layui-btn-xs" lay-event="export"><i class="layui-icon layui-icon-export"></i>导出</button>
    </div>
</script>

<!-- 定义弹出层的 内容 ,该div必须是body的儿子元素-->
<div id="myModel" style="display: none;">
    <div class="modal-dialog">
        <div class="modal-content">
            <div class="modal-body layui-col-md8 layui-col-md-offset2">

                <!-- 模态框的内容区域-->



                <!--<form id="addForm" action="" class="layui-form" method="post">-->

                    <!--&lt;!&ndash; id隐藏域&ndash;&gt;-->
                    <!--<input type="hidden" name="id" value=""/>-->

                    <!--<div class="layui-form-item">-->
                        <!--<label class="layui-form-label">图书名:</label>-->
                        <!--<div class="layui-input-block">-->
                            <!--<input type="text" name="bookName" required  lay-verify="required"-->
                                   <!--placeholder="请输入图书" autocomplete="off" class="layui-input">-->
                        <!--</div>-->
                    <!--</div>-->
                    <!--<div class="layui-form-item">-->
                        <!--<label class="layui-form-label">作者:</label>-->
                        <!--<div class="layui-input-block">-->
                            <!--<input type="text" name="author" required  lay-verify="required"-->
                                   <!--placeholder="请输入作者" autocomplete="off" class="layui-input">-->
                        <!--</div>-->
                    <!--</div>-->
                    <!--<div class="layui-form-item">-->
                        <!--<label class="layui-form-label">价格:</label>-->
                        <!--<div class="layui-input-block">-->
                            <!--¥<input type="text" name="price" required  lay-verify="required"-->
                                    <!--placeholder="请输入价格" autocomplete="off" class="layui-input"> 元-->
                        <!--</div>-->
                    <!--</div>-->
                    <!--&lt;!&ndash;<div class="layui-form-item">&ndash;&gt;-->
                    <!--&lt;!&ndash;<label class="layui-form-label">发布时间:</label>&ndash;&gt;-->
                    <!--&lt;!&ndash;<div class="layui-input-block">&ndash;&gt;-->
                    <!--&lt;!&ndash;<input type="text" id="publicDate" name="publicDate"&ndash;&gt;-->
                    <!--&lt;!&ndash;placeholder="请输入加入时间"  class="layui-input">&ndash;&gt;-->
                    <!--&lt;!&ndash;</div>&ndash;&gt;-->
                    <!--&lt;!&ndash;</div>&ndash;&gt;-->
                    <!--<div class="layui-form-item" style="text-align: center;">-->
                        <!--<button id="addBtn" class="layui-btn" type="button">提交</button>-->
                    <!--</div>-->
                <!--</form>-->
            <!--</div>-->
        </div>
    </div>

</div>

</div>
</body>
<script src="js/jquery-3.1.1.min.js"></script>
<script src="layui/layui.js"></script>
<script>
    layui.use(['element','table','form'],function(){
        var element = layui.element;
        var table = layui.table;
        var form = layui.form;
        var layer = layui.layer;

        // 加载表格
        table.render({
            elem:"#demo",
             width:800,
            // height:500,
            // dataType:'JSONP',  // 处理Ajax跨域问题
             url:"js/demo1.json",
           // url:"https://www.layui.com/demo/table/user/",
          //  url:"https://www.layui.com/demo/table/user/?page=2&limit=10",   这个链接不能被跨域访问  无法在我当前表格中显示数据
         //  url:"http://api.tianapi.com/txapi/wxhotarticle/index?key=acae02ebbec807d9e3bb8c503805fc62&num=10&page1",
            page:true,  //开启分页
            cols:[[
                {
                    field:"id", // 对应json的data的属性名
                    title:"ID", //列名
                    width:80,
                    sort:true, //是否排序
                    fixed:'left'// 列的固定位置
                },
                {
                    field:"username",
                    title:"用户名",
                    width:100,

                } ,{
                    field: 'city',
                    title: '城市',
                    width:80}
                ,{
                    field: 'sign',
                    title: '签名',
                    width: 177}
                ,{
                    field: 'experience',
                    title: '积分',
                    width: 80,
                    sort: true}
                ,{
                    field: 'ip',
                    title: 'IP',
                    width: 120,
                    sort: true}
                ,{
                    field: 'joinTime',
                    title: '加入时间',
                    width: 150
                }
                ,{
                    title:"操作",
                    width:200,
                    fixed: 'right',   //固定在右边
                    align: 'center' ,  // 居中显示
                    toolbar:'#barDemo' // 将id=barDemo的文本作为工具栏显示
                }
            ]]
            ,toolbar:'#tabBarDemo'
        });


        // 2、 对每一行的数据增加  按钮的监听事件
        table.on('tool(test)',function(obj){
              // 判断 当前点击的哪一个按钮
            //获取每一行数据
            var  data = obj.data;
            //获取每一行的event事件名
            var event = obj.event;
            if(event =='edit'){
                layer.msg("编辑操作");
                // 弹出模态框等

            }else if(event =='del'){
                layer.msg("删除操作,当前id:"+data.id); // 这里的id与field一致

            }else if(event == 'detail'){
                layer.msg('详情查看');


            }
        });
        // 表头的工具栏
        table.on('toolbar(test)',function(obj){
            //获取选中的数据行
            var checkStatus = table.checkStatus(obj.config.id);
            var event=obj.event;
            if(event =='add'){
                //弹出一个 模态框  (弹出层组件)
                //layer.msg('数据添加');

                layer.open({
                    type:2,    //弹出一个页面层
                    title:"用户添加",
                    // content:$("#myModel"),    // 这是jquery的写法,需要导入
                    content:'05 表单元素.html',
                    area: ['500px', '300px'],
                    btn: ['按钮一', '按钮二', '按钮三'],
                    anim:1
                })

            }else  if(event =='import'){
                var data = checkStatus.data;
                layer.alert(JSON.stringify(data));
            }
            // 导入导出
        })

    })
</script>
</html>

运行结果

在这里插入图片描述

总结

与css不同,我们不需要过多的编辑,只需要引入layui模块,然后通过layui中封装的方法进行引用,就可以很轻松得到我们需要的效果。用layui插件做html,不仅更加简洁,而且效果也更好。
最后推荐一个学习layui的网址:
www.layui.com
通过该网址里面的文档和示例,对我们学习layui和使用时查找layui的一些方法提供便利。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值