layui数据表格的使用,做一个常用带搜素框的查询表格的示例——layui笔记

使用思路:

1、需要写一个table标签,到时候用js来渲染
2、按照layui的使用规则写js(官网直接复制示例改一改)
3、请求后台,获取数据并且按照数据格式,把数据给到layui,这是最关键的

示例:做一个常用的查询表格

目标如图:
做一个带搜索框的表格,点击搜索可以按照输入的参数进行搜索,搜索后的将结果可以渲染到表格上
在这里插入图片描述
实施:
1、 写一个table标签,一个输入框,一个搜索按钮

<div class="demoTable">
	搜索ID<div class="layui-inline">
		<input class="layui-input" name="id" id="demoReload" autocomplete="off">
	</div>
	<button class="layui-btn" data-type="reload" id="sousuo">搜索</button>
</div>
<table class="layui-hide" id="test"></table>

2、按照layui的使用规则写js用于渲染表格(官网直接复制示例改一改),再写给 搜索按钮添加点击事件,点击事件要把文本框的参数传进去

layui.use('table', function(){
    var table = layui.table;
    //表格渲染---------------------------------------------------------------------
    var tableIns = table.render({
        elem: '#test'
        ,url: 'muban1Action/queryTplInst.do'
        ,cellMinWidth: 80 //全局定义常规单元格的最小宽度,layui 2.2.1 新增
        ,cols: [[
            {field:'id', width:80, title: 'ID', sort: true}
            ,{field:'tplId', width:80, title: '模板ID'}
            ,{field:'page', width:80, title: '所属页面', sort: true}
            ,{field:'bkid', width:80, title: '背景图id'}
            ,{field:'writer', title: '文案', width: '30%', minWidth: 100} //minWidth:局部定义当前单元格的最小宽度,layui 2.2.1 新增
            ,{field:'city', title: '所属市', sort: true}
            ,{field:'province', title: '所属省', sort: true}
            ,{field:'createTime', title: '创建时间'}
            ,{field:'expire', width:137, title: '模板到期日', sort: true}
            ,{field:'usrId', width:137, title: '用户id', sort: true}
        ]]
    });
    //搜索按钮的点击事件------------------------------------------------------
    $("#sousuo").click(function () {
        //这里以搜索为例
        tableIns.reload({
            where: { //设定异步数据接口的额外参数,任意设
                id: $("#demoReload").val()//传送搜索条件,取文本框的值
                ,usrId: 0
            }
            ,page: {
                curr: 1 //重新从第 1 页开始
            }
        });
    });

});

3、请求后台,获取数据并且按照数据格式,把数据给到layui,这是最关键的
下面是控制层的代码,这里使用的是springMVC。如下仅仅展示控制层,dao层和sql这里不过多赘述

@Controller
@RequestMapping("muban1Action")
public class Muban1Action {
    @Resource
    private TplInstBiz tplInstBiz;

    @RequestMapping("queryTplInst")
    @ResponseBody
    public  Map<String,Object> queryTplInst(Integer id,Integer usrId ,Integer TplId,HttpServletRequest request, HttpServletResponse response) throws IOException {
        TplInst tplInst = new TplInst();
        tplInst.setUsrId(usrId);
        tplInst.setId(id);//把参数给到实体类
        tplInst.setTplId(TplId);
        List<TplInst> list=  tplInstBiz.queryTplInst(tplInst);//查询出结果
        Map map=new HashMap<String,Object>();
        map.put("msg","ok");
        map.put("code",0);
        map.put("count",list.size());
        map.put("data",list);
        return map;
    }
}

我们返回的需要按照这个格式返回,layui会拿这个解析

        Map map=new HashMap<String,Object>();
        map.put("msg","ok");
        map.put("code",0);
        map.put("count",list.size());
        map.put("data",list);
        return map;

4、渲染前端页面
这里的field的字段名只要和list中的对象的属性对应就可以把结果渲染出来了
在这里插入图片描述
5、结果展示
输入参数前查询:
在这里插入图片描述
输入参数后查询,根据ID查询出一条数据
在这里插入图片描述

  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
layui数据表格使用下拉,可以通过两种方式实现:一种是使用表格的编辑功能,另一种是使用自定义列模板。 1. 使用表格的编辑功能: - 首先,在表格的列定义中,设置需要使用下拉的列的edit属性为"text",表示该列可编辑。 - 然后,在表格数据中,为需要使用下拉的列设置一个lay-verify属性,用于校验输入的值。 - 最后,在表格的渲染时,调用form.render()方法,使下拉生效。 2. 使用自定义列模板: - 首先,在表格的列定义中,设置需要使用下拉的列的templet属性为一个函数,用于自定义列的显示内容。 - 在该函数中,可以通过返回一个HTML字符串来定义下拉的HTML结构,并绑定相应的事件处理函数。 - 最后,在表格的渲染时,调用form.render()方法,使下拉生效。 下面是一个示例代码,演示了如何在layui数据表格使用下拉: ```javascript // HTML部分 <table id="demo" lay-filter="test"></table> // JavaScript部分 layui.use(['table', 'form'], function(){ var table = layui.table; var form = layui.form; // 渲染表格 table.render({ elem: '#demo', url: '/api/data', cols: [[ {field: 'id', title: 'ID', width: 80}, {field: 'name', title: '姓名', edit: 'text'}, {field: 'gender', title: '性别', templet: '#genderTpl'} ]], page: true }); // 自定义列模板 var genderTpl = function(d){ var options = '<option value="男">男</option><option value="女">女</option>'; return '<select lay-filter="gender" lay-verify="required">' + options + '</select>'; }; // 将模板注册到layui的模板引擎中 layui.laytpl(genderTpl).render({}, function(html){ $('#genderTpl').html(html); }); // 监听下拉的change事件 form.on('select(gender)', function(data){ console.log(data.value); // 获取选中的值 }); // 渲染表单 form.render(); }); ``` 在上述示例中,通过设置edit属性为"text",实现了姓名列的编辑功能;通过设置templet属性为一个函数,实现了性别列的自定义列模板。同时,通过监听下拉的change事件,可以获取选中的值。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我这头发越来越多呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值