asp.net core razor layui 分页和url参数绑定一起

浪淘沙1年前前端406
@page
@model xxtsoft.Web.Entry.Pages.sysadmins.rw.rw_listModel
@{
    Layout = "_LayoutAdmin";
}
<div class="layui-fluid">


    <form class="layui-form layui-form-pane" action="">
        <div class="layui-form-item">

            <div class="layui-inline">
                <label class="layui-form-label"> 部门</label>
                <div class="layui-input-inline">
                    <input type="text" name="bm" id="bm" autocomplete="off" class="layui-input" value="@Model.bm" autocomplete="off" lay-affix="clear">
                </div>
            </div>
            <div class="layui-inline">
                <label class="layui-form-label">项目</label>
                <div class="layui-input-inline">
                    <input type="text" name="xm" id="xm" autocomplete="off" class="layui-input" value="@Model.xm" autocomplete="off" lay-affix="clear">
                </div>
            </div>


            <div class="layui-inline">
                <input type="hidden" name="fst" id="fst" value="@Request.Query["fst"]" class="layui-input">
                <button class="layui-btn layuiadmin-btn-list btn-block" lay-submit lay-filter="LAY-app-contlist-search">
                    <i class="layui-icon layui-icon-search layuiadmin-button-btn"></i>搜索
                </button>
            </div>
        </div>
    </form>

</div>
<div class="layui-fluid paneltop35">
    <div class="layui-panel layui-padding-3">


        <table id="xxt-tbl" lay-filter="xxt-tbl"></table>
        <script type="text/html" id="xxt-bar">
            <div class="layui-btn-container">
                  <button class="layui-btn " lay-event="add"><i class="layui-icon layui-icon-add-1"></i>添加</button>
            </div>
        </script>
        <script type="text/html" id="xxt-opr">
            <div class="layui-clear-space">
            <a class="layui-btn layui-btn-xs layui-bg-blue" lay-event="edit"><i class="layui-icon layui-icon-edit"></i>编辑 </a>
            <a class="layui-btn layui-btn-xs layui-bg-red" lay-event="del"><i class="layui-icon layui-icon-delete"></i>删除 </a>
            </div>
        </script>
        <div id="demo-laypage-limits"></div>
        <script type="text/html" id="xxt-pagebar">
            <div class="layui-btn-container">
               <button class="layui-btn layui-btn-sm layui-btn-danger" lay-event="batchdel">批量删除</button>
            </div>
        </script>
    </div>
</div>
<script>
    layui.config({
        base: '/layui/' // 静态资源所在路径
    }).extend({
        index: 'lib/index' //主入口模块
    }).use(function () {

        var table = layui.table;
        var layer = layui.layer;
        var $ = layui.jquery;
        var mobile = layui.device().mobile;//手机模式

        table.render({
            elem: '#xxt-tbl'
            , height: mobile ? 550 : 700
            , url: '@Model.url' //数据接口
            , method: 'POST'
            , page: true // 开启分页
            , request: {
                pageName: 'pageindex', // page
                limitName: 'PageSize'// limit
            }
           
            , toolbar: '#xxt-bar'
            , defaultToolbar: ['filter',
                {
                    title: '导出全部Excel',
                    layEvent: 'Excel_Allout',
                    icon: 'layui-icon-export'
                }

                , 'print']
            , page: {
                limit: 10//分页显示数据
                , limits: [5, 10, 20, 50, 100]
                , curr: @Model.pageindex
                     } //开启分页
            , where: {
              
              }
            , even: true
            , response: {
                statusCode: 200 // 重新规定成功的状态码为 200,table 组件默认为 0
            }
            , parseData: function (res) { //res 即为原始返回的数据

                var code = res.statusCode;
                var count = res.totaldata;
                var data = res.data;
                //JSON.stringify(res)
                return {
                    "code": res.statusCode, //解析接口状态
                    "msg": '', //解析提示文本
                    "count": count, //解析数据长度
                    "data": data //解析数据列表

                };
            }           
             , loading: true
            , pagebar: '#xxt-pagebar'// 分页栏模板
            , cols: [[ //表头
                { type: 'checkbox', fixed: 'left' }
                , { field: 'id', title: 'ID', width: 80, sort: true, fixed: 'left' }
                , { field: 'bm', title: '部门', width: 100 }
                , { field: 'xm', title: '项目', width: 100 }
                , { field: 'rw', title: '任务', width: 100 }
                , { field: 'zrr', title: '责任人', width: 100 }
                , { field: 'kssj', title: '开始时间', width: 120, sort: true, templet: function (d) { return layui.util.toDateString(d.kssj, "yyyy-MM-dd"); } }
                , { field: 'jssj', title: '结束时间', width: 120, sort: true, templet: function (d) { return layui.util.toDateString(d.jssj, "yyyy-MM-dd"); } }
                , { field: 'bz', title: '备注' }
                , { fixed: 'right', title: '操作', minWidth: 160, toolbar: '#xxt-opr' }

            ]],
            done: function (res, curr, count) {
                // 渲染完成后更新 URL
                var url = new URL(window.location);            
                url.searchParams.set('pageindex', curr);
                window.history.pushState({}, '', url);              
            }
        });

        //  头工具栏事件
        table.on('toolbar(xxt-tbl)', function (obj) {
            // layer.msg(obj.event);
            switch (obj.event) {
                case 'add':
                    layer.open({
                        type: 2,
                        title: '添加',
                        content: 'rw_add?fst=' + @Request.Query["fst"],
                        shadeClose: true,
                        area: mobile ? ['95%', '80%'] : ['80%', '80%'],
                        maxmin: true, //开启最大化最小化按钮

                    });
                    break;
                case 'Excel_Allout':
                    layer.confirm("是否要导出当前数据?", {
                        icon: 3,
                        btn: ["确定", "取消"]
                    }, function (layerIndex) {
                        layer.close(layerIndex);
                        indexload = layer.load(2, {
                            content: '加载中...',
                            icon: 16,
                            success: function (layero) {
                                layero.find('.layui-layer-content').css({
                                    'paddingTop': '40px',
                                    'width': '200px',
                                    'textAlign': 'center',
                                    'backgroundPositionX': 'center'
                                });
                            }
                        });
                        exportData();
                        layer.close(indexload);
                    });
                    break;


            };
        });
        //导出全部数据excel
        var dataExport = new Array;
        function exportData(obj, offset, limit) {
            //请求所有数据
            $.ajax({
                type: 'POST',
                url: '/api/rw/GetAll',
                dataType: 'json',
                success: function (res) {

                    table.exportFile('xxt-tbl', res.data,
                        {
                            type: 'xls',
                            title: '任务导出'
                        }
                    );

                }
            });
        }


        // 底部分页栏事件
        table.on('pagebar(xxt-tbl)', function (obj) {
            var eventValue = obj.event; // 获得按钮 lay-event 值
            // layer.msg(eventValue);
            // console.log(obj); // 查看对象所有成员
            // console.log(obj.event);

            var id = obj.config.id;
            var checkStatus = table.checkStatus(id);
            switch (eventValue) {
                case 'batchdel':

                    var data = checkStatus.data;

                    var ids = [];
                    for (var i = 0; i < data.length; i++) {
                        var rowId = data[i].id; // 假设每一行数据都有一个 'id' 字段
                        // console.log(rowId);
                        ids.push(Number(rowId));
                    }
                    var jsonData = JSON.stringify(ids);
                    layer.confirm('真的批量删除么', function (index) {
                        // console.log(ids);
                        // console.log(jsonData);
                        $.ajax({
                            url: "/api/rw/DelByIds",
                            type: "POST",
                            data: jsonData,
                            contentType: 'application/json', // 设置请求头中的 Content-Type 为 application/json
                        });
                        table.reload('xxt-tbl');
                        layer.close(index);
                    });

                    break;
            };
        });
        //触发单元格工具事件
        table.on('tool(xxt-tbl)', function (obj) { // 双击 toolDouble
            var data = obj.data;
            // console.log(obj)
            // console.log(data.id);
            var id = data.id;
            // console.log(id);
            // alert(id);

            // // 更新 URL 中的页码
            // var page = obj.config.page.curr;

            // console.log(page);

            // var url = new URL(window.location);
            // url.searchParams.set('PageIndex', page);
            // window.history.pushState({}, '', url);



            if (obj.event === 'del') {
                layer.confirm('真的删除么', function (index) {

                    $.ajax({
                        url: "/api/rw/DelById/" + id,
                        type: "POST",
                    });
                    obj.del();
                    layer.close(index);
                });
            } else if (obj.event === 'edit') {

                layer.open({
                    type: 2,
                    title: '编辑',
                    content: 'rw_add?fst=' + @Request.Query["fst"]+'&id=' + id,

                    shadeClose: true,
                    area: mobile ? ['95%', '80%'] : ['900px', '700px'],
                    maxmin: true, //开启最大化最小化按钮
                });
            }
        });

    });

</script>


相关文章

layui 省市区三级联动

layui 省市区三级联动

 <div class="layui-form-item">      <label&nb...

layui

//第一个实例   table.render({       elem: '#xxt-tbl...

asp.net code webapi layui ajax post表单数据

using System; using System.Collections.Generic; using System.Linq; using Syst...

layui span绑定form值

layui span绑定form值

  span{       display: block;     ...

layui select 下拉多选 xm-select

<div class="layui-fluid">     <div id="demo1&...

layui 只有点击“导出Excel”按钮时,才改变“导出Excel”按钮的状态

<form class="layui-form layui-form-pane" method="post"> &n...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。