编程的过程就是一个不断发现问题,解决问题的过程,在用ssm框架和layui开发的过程中,在使用layui数据表格重载方法实现搜索功能中遇到问题,下面贴出我的解决方法。

一、dao层方法

    //按username搜索
    List<User> querySerchByusername(@Param("username") String username);

二、dao层xml

    <!--按username模糊搜索-->
    <select id="querySerchByusername" resultType="User">
        select * from mycard.user
        <if test="username!=null and username != ''">
            where username like concat("%",#{username},"%")
        </if>
    </select>

三、controller层

LayuiTypeJson是自定义的工具类,第一篇文章里有,这里不再说明

//所有用户搜索功能
    @RequestMapping("/alluserserch")
    public LayuiTypeJson<User> serch(@RequestParam(defaultValue = "") String username) {
        List<User> list = null;
        if (username.equals("")) {
            list = userservice.queryAllUser();
        }
        if (!username.equals("")) {
            list = userservice.querySerchByusername(username);
        }
        LayuiTypeJson<User> layuiTypeJson = new LayuiTypeJson<User>();
        layuiTypeJson.setCount(list.size());
        layuiTypeJson.setData(list);
        return layuiTypeJson;
    }

四、前台页面

注意:name属性需要和查询的字段名称保持一致

<div class="demoTable" style="float:right">
            <div class="layui-inline">
                <input class="layui-input" name="username" id="demoReload" autocomplete="off">
            </div>
            <button class="layui-btn" data-type="reload">搜索</button>
</div>

五、layui方法

这里遇到的坑有几个:
1、注意要给table一个id,用于重载,如:id: ‘testReload’。
2、给后台传值的时候要把layui源码中的key去掉。

<script>
    layui.use('table', function () {
        var table = layui.table
            , form = layui.form;
        table.render({
            elem: '#demo'
            , url: '/user/alluserserch'
            , cellMinWidth: 80
            , cols: [[
                {type: 'numbers'}
                , {type: 'checkbox'}
                , {field: 'username', title: '用户名', width: 200, sort: true}
                , {field: 'password', title: '密码'}
                , {field: 'role', title: '角色'}
                , {field: 'email', title: '邮箱'}
                , {field: 'sex', title: '性别'}
                , {field: 'age', title: '年龄'}
                , {field: 'tel', title: '电话'}
                , {fixed: 'right', title: '操作', toolbar: '#barDemo', width: 200}
        <span class="token punctuation">]<span class="token punctuation">]
        <span class="token punctuation">, id<span class="token operator">: <span class="token string">'testReload'
        <span class="token punctuation">, page<span class="token operator">: <span class="token boolean">true
    <span class="token punctuation">}<span class="token punctuation">)<span class="token punctuation">;
    var $ <span class="token operator">= layui<span class="token punctuation">.$<span class="token punctuation">, active <span class="token operator">= <span class="token punctuation">{
        reload<span class="token operator">: function <span class="token punctuation">(<span class="token punctuation">) <span class="token punctuation">{
            var username <span class="token operator">= $<span class="token punctuation">(<span class="token string">'#demoReload'<span class="token punctuation">)<span class="token punctuation">;
            console<span class="token punctuation">.<span class="token function">log<span class="token punctuation">(username<span class="token punctuation">.<span class="token function">val<span class="token punctuation">(<span class="token punctuation">)<span class="token punctuation">)<span class="token punctuation">;
            <span class="token comment">//执行重载
            table<span class="token punctuation">.<span class="token function">reload<span class="token punctuation">(<span class="token string">'testReload'<span class="token punctuation">, <span class="token punctuation">{
                page<span class="token operator">: <span class="token punctuation">{
                    curr<span class="token operator">: <span class="token number">1 <span class="token comment">//重新从第 1 页开始
                <span class="token punctuation">}
                <span class="token punctuation">, where<span class="token operator">: <span class="token punctuation">{
                    username<span class="token operator">: username<span class="token punctuation">.<span class="token function">val<span class="token punctuation">(<span class="token punctuation">)
                <span class="token punctuation">}
            <span class="token punctuation">}<span class="token punctuation">, <span class="token string">'data'<span class="token punctuation">)<span class="token punctuation">;
        <span class="token punctuation">}
    <span class="token punctuation">}<span class="token punctuation">;
    $<span class="token punctuation">(<span class="token string">'.demoTable .layui-btn'<span class="token punctuation">)<span class="token punctuation">.<span class="token function">on<span class="token punctuation">(<span class="token string">'click'<span class="token punctuation">, function <span class="token punctuation">(<span class="token punctuation">) <span class="token punctuation">{
        var type <span class="token operator">= $<span class="token punctuation">(<span class="token keyword">this<span class="token punctuation">)<span class="token punctuation">.<span class="token function">data<span class="token punctuation">(<span class="token string">'type'<span class="token punctuation">)<span class="token punctuation">;
        active<span class="token punctuation">[type<span class="token punctuation">] <span class="token operator">? active<span class="token punctuation">[type<span class="token punctuation">]<span class="token punctuation">.<span class="token function">call<span class="token punctuation">(<span class="token keyword">this<span class="token punctuation">) <span class="token operator">: <span class="token string">''<span class="token punctuation">;
    <span class="token punctuation">}<span class="token punctuation">)<span class="token punctuation">;
<span class="token punctuation">}<span class="token punctuation">)<span class="token punctuation">;

</script>

功能已经成功实现,有问题的小伙伴可以在评论区留言,大家一起探讨。

Posted on 2021-02-02 16:01  丸豆  阅读(391)  评论(0编辑  收藏  举报