使用LayUI展示数据

LayUI是一款免费,开源,轻量级的前端cms框架,适用于企业后端,能快速上手开发,集成了常用的组件,还有完善的文档和社区。

点击查看 文档地址 下载框架

使用:

1.把这个5个文件项都拷贝到项目中

2.到layui官网 地址 将后台布局的代码考过来,做一个左侧导航,右侧显示主内容的格局

3.代码复制到我们自己项目新建的home.html页面后,

根据代码上的提示,将远程地址替换成本地,直接删除css引用和js引用,从自己的项目中将这2个文件拖到html页面上

4.完成左侧菜单跳转右侧显示

点击发现菜单没有跳转,因为a标签没有指向页面,接下来新建一个html页面UVList.html

我们在一个菜单中加入页面地址,点击后发现跳转到新页面去了,没有显示到右侧,这是因为没有加入iframe

 

细心的你可能会发现div里面加入了一个height:100%的属性,没错,这是因为右侧高度不够,数据表格显示不完整

layui-body这个div里面加入iframe以后,在a标签加入target属性

现在就可以正常实现跳转到右侧了。

绑定数据

1.到官网拷一段代码过来(数据表格)http://www.layui.com/demo/table.html

先选个简单的,点击查看代码,将代码全部拷贝过来

我们这边代码粘贴在UVList.html页面上,并将js,css文件替换成本地的

红框部分是后端返回过来的json对象中的实体字段,url是请求地址,页面初始化时会根据url去自动加载数据,自动绑定并分页

接下来就是绑数据了,首先在后台将接口写好,返回json格式数据

注意:格式要按照它指定的格式

 

绑数据说明:

其中,msg如果没有信息的话,一定要写成"msg":"","code":0 ,如果写成"msg":,"code":0 就会出现数据加载异常的错误

如果code不存在或者值有异常,就会提示数据加载状态异常的错误,正常一般都是0

然后field字段按照你返回的json格式一个个写好就行了。

到这里应该可以正常的将数据展示出来了,

如果发现数据表格高度还是不够,我们要给表格设置一个高度和宽度

运行结果

绑定表格的三种方法

我们这种属于第一种,在html里面指定表头每列绑定数据字段,接下来说第二种

第二种号称方法级渲染,实际上就是在js中指定每列绑定参数

第一步

<table class="layui-hide" id="LAY_table_user" lay-filter="useruv"></table>

第二步

 layui.use(‘table‘, function(){
        var table = layui.table;

        //方法级渲染
        table.render({
            elem: ‘#LAY_table_user‘
            ,url: ‘UVServlet‘
            ,cols: [[
                {checkbox: true, fixed: true}
                ,{field:‘id‘, title: ‘ID‘, width:80, sort: true, fixed: true}
                ,{field:‘aid‘, title: ‘商户‘, width:80, sort: true}
                ,{field:‘uv‘, title: ‘访问量‘, width:80, sort: true,edit:true}
                ,{field:‘date‘, title: ‘日期‘, width:180}
                ,{field:‘datatype‘, title: ‘日期类型‘, width:100}
            ]]
            ,id: ‘testReload‘
            ,page: true
            ,height: 600
        });
  });

第三种是将已知的数据绑定到表格,用于测试,实际写法没什么不同

layui.use(‘table‘, function(){
  var table = layui.table;

  //展示已知数据
  table.render({
    elem: ‘#demo‘
    ,data: [{
      "id": "10001"
      ,"username": "杜甫"
      ,"email": "[email protected]"
      ,"sex": "男"
      ,"city": "浙江杭州"
      ,"sign": "人生恰似一场修行"
      ,"experience": "116"
      ,"ip": "192.168.0.8"
      ,"logins": "108"
      ,"joinTime": "2016-10-14"
    }, {
      "id": "10002"
      ,"username": "李白"
      ,"email": "[email protected]"
      ,"sex": "男"
      ,"city": "浙江杭州"
      ,"sign": "人生恰似一场修行"
      ,"experience": "12"
      ,"ip": "192.168.0.8"
      ,"logins": "106"
      ,"joinTime": "2016-10-14"
      ,"LAY_CHECKED": true
    }, {
      "id": "10003"
      ,"username": "王勃"
      ,"email": "[email protected]"
      ,"sex": "男"
      ,"city": "浙江杭州"
      ,"sign": "人生恰似一场修行"
      ,"experience": "65"
      ,"ip": "192.168.0.8"
      ,"logins": "106"
      ,"joinTime": "2016-10-14"
    }, {
      "id": "10004"
      ,"username": "贤心"
      ,"email": "[email protected]"
      ,"sex": "男"
      ,"city": "浙江杭州"
      ,"sign": "人生恰似一场修行"
      ,"experience": "666"
      ,"ip": "192.168.0.8"
      ,"logins": "106"
      ,"joinTime": "2016-10-14"
    }, {
      "id": "10005"
      ,"username": "贤心"
      ,"email": "[email protected]"
      ,"sex": "男"
      ,"city": "浙江杭州"
      ,"sign": "人生恰似一场修行"
      ,"experience": "86"
      ,"ip": "192.168.0.8"
      ,"logins": "106"
      ,"joinTime": "2016-10-14"
    }, {
      "id": "10006"
      ,"username": "贤心"
      ,"email": "[email protected]"
      ,"sex": "男"
      ,"city": "浙江杭州"
      ,"sign": "人生恰似一场修行"
      ,"experience": "12"
      ,"ip": "192.168.0.8"
      ,"logins": "106"
      ,"joinTime": "2016-10-14"
    }, {
      "id": "10007"
      ,"username": "贤心"
      ,"email": "[email protected]"
      ,"sex": "男"
      ,"city": "浙江杭州"
      ,"sign": "人生恰似一场修行"
      ,"experience": "16"
      ,"ip": "192.168.0.8"
      ,"logins": "106"
      ,"joinTime": "2016-10-14"
    }, {
      "id": "10008"
      ,"username": "贤心"
      ,"email": "[email protected]"
      ,"sex": "男"
      ,"city": "浙江杭州"
      ,"sign": "人生恰似一场修行"
      ,"experience": "106"
      ,"ip": "192.168.0.8"
      ,"logins": "106"
      ,"joinTime": "2016-10-14"
    }]
    ,height: 272
    ,cols: [[ //标题栏
      {checkbox: true, LAY_CHECKED: true} //默认全选
      ,{field: ‘id‘, title: ‘ID‘, width: 80, sort: true}
      ,{field: ‘username‘, title: ‘用户名‘, width: 120}
      ,{field: ‘email‘, title: ‘邮箱‘, width: 150}
      ,{field: ‘sign‘, title: ‘签名‘, width: 150}
      ,{field: ‘sex‘, title: ‘性别‘, width: 80}
      ,{field: ‘city‘, title: ‘城市‘, width: 100}
      ,{field: ‘experience‘, title: ‘积分‘, width: 80, sort: true}
    ]]
    ,skin: ‘row‘ //表格风格
    ,even: true
    ,page: true //是否显示分页
    ,limits: [5, 7, 10]
    ,limit: 5 //每页默认显示的数量
  });
});

对于这三种绑定方式,我们可以预见,常用的肯定是第二种,因为灵活,容易迭代

关于表格的常见元素

这里说明一下常用的cols里面的属性元素

事实上,这里有非常详细的文档http://www.layui.com/doc/modules/table.html 都是关于数据表格的

总结:

LayUI的学习和使用都是比较方便的,对于引入项目,开始使用,对于数据的绑定与实现都是很简单的,学习成本超低.

html完整代码:

home.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <title>layout 后台大布局 - Layui</title>

    <link rel="stylesheet" href="Assets/css/layui.css" media="all">

</head>
<body class="layui-layout-body">
<div class="layui-layout layui-layout-admin">
    <div class="layui-header">
        <div class="layui-logo">layui 后台布局</div>
        <!-- 头部区域(可配合layui已有的水平导航) -->
        <ul class="layui-nav layui-layout-left">
            <li class="layui-nav-item"><a href="">控制台</a></li>
            <li class="layui-nav-item"><a href="">商品管理</a></li>
            <li class="layui-nav-item"><a href="">用户</a></li>
            <li class="layui-nav-item">
                <a href="javascript:;">其它系统</a>
                <dl class="layui-nav-child">
                    <dd><a href="">邮件管理</a></dd>
                    <dd><a href="">消息管理</a></dd>
                    <dd><a href="">授权管理</a></dd>
                </dl>
            </li>
        </ul>
        <ul class="layui-nav layui-layout-right">
            <li class="layui-nav-item">
                <a href="javascript:;">
                    <img src="http://t.cn/RCzsdCq" class="layui-nav-img">
                    贤心
                </a>
                <dl class="layui-nav-child">
                    <dd><a href="">基本资料</a></dd>
                    <dd><a href="">安全设置</a></dd>
                </dl>
            </li>
            <li class="layui-nav-item"><a href="">退了</a></li>
        </ul>
    </div>

    <div class="layui-side layui-bg-black">
        <div class="layui-side-scroll">
            <!-- 左侧导航区域(可配合layui已有的垂直导航) -->
            <ul class="layui-nav layui-nav-tree"  lay-filter="test">
                <li class="layui-nav-item layui-nav-itemed">
                    <a class="" href="javascript:;">所有商品</a>
                    <dl class="layui-nav-child">
                        <dd><a href="javascript:;">列表一</a></dd>
                        <dd><a href="javascript:;">列表二</a></dd>
                        <dd><a href="javascript:;">列表三</a></dd>
                        <dd><a href="">超链接</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item">
                    <a href="javascript:;">解决方案</a>
                    <dl class="layui-nav-child">
                        <dd><a href="javascript:;">列表一</a></dd>
                        <dd><a href="javascript:;">列表二</a></dd>
                        <dd><a href="">超链接</a></dd>
                    </dl>
                </li>
                <li class="layui-nav-item"><a href="WebApp/UVList.html" target="option">访问量</a></li>
                <li class="layui-nav-item"><a href="WebApp/SerachUVList.html" target="option">可搜索访问量</a></li>
            </ul>
        </div>
    </div>

    <div class="layui-body">
        <!-- 内容主体区域 -->
        <div style="padding: 15px;height:100%">
            <iframe id="option" name="option" src="WebApp/UVList.html" style="overflow: visible;" scrolling="no" frameborder="no" width="100%" height="100%"></iframe>

        </div>
    </div>

    <div class="layui-footer">
        <!-- 底部固定区域 -->
        ?honstat.com
    </div>
</div>
<script src="Assets/layui.js" charset="utf-8"></script>
<script>
    //JavaScript代码区域
    layui.use(‘element‘, function(){
        var element = layui.element;

    });
</script>
</body>
</html>

UVList.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>layui</title>
    <meta name="renderer" content="webkit">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
    <script src="../Assets/layui.js"></script>
    <link rel="stylesheet" href="../Assets/css/layui.css">

    <!-- 注意:如果你直接复制所有代码到本地,上述css路径需要改成你本地的 -->
</head>
<body>
<div style="margin-bottom: 5px;">

    <!-- 示例-970 -->
    <ins class="adsbygoogle" style="display:inline-block;width:700px;height:700px" data-ad-client="ca-pub-6111334333458862" data-ad-slot="3820120620"></ins>

</div>

<table class="layui-table" lay-data="{width:‘full‘, height:‘680‘, url:‘UVServlet‘, page:true, id:‘idTest‘}" lay-filter="demo">
    <thead>
    <tr>
        <th lay-data="{checkbox:true, fixed: true}"></th>
        <th lay-data="{field:‘id‘, width:80, sort: true, fixed: true}">ID</th>
        <th lay-data="{field:‘aid‘, width:80}">商家</th>
        <th lay-data="{field:‘uv‘, width:80, sort: true}">UV</th>
        <th lay-data="{field:‘date‘, width:180}">日期</th>
        <th lay-data="{field:‘datatype‘, width:177}">日期类型</th>

    </tr>
    </thead>
</table>

</body>
</html>

关于数据源绑定,可以参考这个接口返回:http://www.layui.com/demo/table/user/?page=1&limit=30

下一篇我们讲对于数据表格的操作,包含搜索,排序,查看,编辑,删除

转自https://www.cnblogs.com/jingch/p/7619995.html

原文地址:https://www.cnblogs.com/shizhijie/p/8654419.html

时间: 2024-08-30 11:13:24

使用LayUI展示数据的相关文章

Linechart + Datagrid 互动展示数据 (Linechart自定义数据点选择线)

如上图示,在linechart中添加红色Y线,拖动该线的过程中,经过数据点时,会实时更新datagrid中对应的X.Y值数据. 实现要点: 1.linechart添加Y线 继承mx.charts.chartClasses.ChartElement,自定义Y线. package { import flash.display.Graphics; import flash.geom.Point; import flash.text.TextField; import mx.charts.chartCl

repeater灵活运用、repeater的commmand用法、如何不用repeater展示数据

实体类: using System; using System.Collections.Generic; using System.Linq; using System.Web; /// <summary> /// gouwu 的摘要说明 /// </summary> public class gouwu { public gouwu() { // // TODO: 在此处添加构造函数逻辑 // } public int ids { get; set; } public strin

Repeater控件 ---表格展示数据

简介: Repeater控件是Web 服务器控件中的一个容器控件,它使您可以从页的任何可用数据中创建出自定义列表. Repeater 控件不具备内置的呈现功能,这表示用户必须通过创建模板为 Repeater 控件提供布局.当该页运行时, Repeater 控件依次通过数据源中的记录为每个记录呈现一个项. Repeater控件不具备内置的呈现功能,所以我们得用一些模板来实现他的数据呈现 下表描述了 Repeater 控件支持的模板.  模板属性                           

Windows程序==&gt;&gt;使用ListView控件展示数据

使用ListView控件展示数据 01.ImageList控件 1.了解了解         属性 说明 Images 储存在图像列表中的所有图像 ImageSize 图像列表中图像的大小 Transparent 被视为透明的颜色 ColorDepth 获取图像列表的颜色深度 Images中图像的存放方式与存放在数组中一样,通过Count属性可以获得Images中图像的个数.每个图像都有一个索引值,从0开始,使用Images[索引值],可以定位到一个图像. ImageList控件所包含的图像可以

使用UITableView展示数据

TableView主要用于展示数据,类似于Android中的ListView. 我们可以通过两个方式使用TableView.第一种是直接使用TableView类.第二种是通过UITableViewController类. 第一种方式主要是通过实例化一个UITableView类,然后将类实例添加到主界面,代码如下 这样,一个简单的tableview就创建了,当然这个时候界面中是没有数据的. 运行结果如下: 接下来为TableView添加数据.通过查看UITableView类的头文件可知道,该类有一

知识点回顾-tableView展示数据常见设置

如何让tableView展示数据 设置数据源对象 self.tableView.dataSource = self; 数据源对象要遵守协议 @interface ViewController () <UITableViewDataSource> @end 实现数据源方法 // 多少组数据 - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView; // 每一组有多少行数据 - (NSInteger)tableView:(

react展示数据

react做得最好的事,就是配合UI展示数据,通过调用接口,如果返回的数据发生改变,页面展示的数据会自动地发生改变. react可以使用jsx语法,允许在js代码中直接写html标签,并且在节点上直接绑定数据,在父级和子级之间的同信时,使用props进行通信.props是properties的简写. 为什么react使用jsx更好,请查看http://reactjs.cn/react/docs/jsx-in-depth.html react的组件其实很简单,可以简单的理解它就是一个函数,通过pr

C#-WebForm-Repeater的灵活运用、ItemCommand的用法-增删改查、如何不适用Repeater来展示数据?

浏览器页面: 代码: <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="

【安卓9】SimpleCursorAdapter、在列表中展示数据

SimpleCursorAdapter SimpleCursorAdaper与SimpleAdapter类似,但数据来源是Cursor. 操作步骤: 在列表中展示数据 1 public MySQLiteOpenHelper(Context context) { 2 super(context,"person.db",null,1); 3 } 4 public void onCreate(SQLiteDatabase db) { 5 db.execSQL("create tab