前端插件-LayUI-----表格的使用(增删查改、搜索、刷新)

效果图
表格参数

数据接口返回参数示例接口:
http://www.layui.com/demo/table/user/?page=1&limit=30
前台页面

@{
    Layout = null;
}

<!DOCTYPE html>

<html>
<head>
    <meta name="viewport" content="width=device-width" />
    <title>Index</title>

    @*这里引入Layui Css资源(注意资源路径)*@
    <link href="~/Content/layui/css/layui.css" rel="stylesheet" />
</head>
<body>
    <div> 


        @*搜索层*@
        <div class="demoTable">
            按模板名称搜索:
            <div class="layui-inline">
                <input class="layui-input" id="demoReload" autocomplete="off">
            </div>
            <button class="layui-btn" data-type="reload">搜索</button>
        </div>



        @*Table表格层*@
        @*创建一个table实例   在页面放置一个元素 <table id="test"></table>,然后通过 table.render() 方法指定该容器,
        这里使用的是表格自动渲染     参数:Url:数据接口路径;Page:是否开启分页;id:表格唯一标示*@
        <table class="layui-table" lay-data="{width:700, url:'/Home/Get_Data', page:true, id:'test'}" lay-filter="test">
            <thead>
                <tr>
                    <th lay-data="{field:'UserId', width:80, sort: true}">ID</th>@*数据字段名称*@
                    <th lay-data="{field:'UserName', width:80}">用户名</th>
                    <th lay-data="{field:'UserAge', width:80, sort: true}">年龄</th>
                    <th lay-data="{field:'UserSex'}">性别</th>
                    <th lay-data="{fixed: 'right', toolbar: '#barDemo', width:250, align:'center'}">操作</th>
                </tr>
            </thead>
        </table>
    </div>


    @*工具栏  在Table中使用 toolbar声明一个 Id  放置在任意位置皆可*@
    <script type="text/html" id="barDemo">
        <a class="layui-btn layui-btn-xs" lay-event="detail">编辑</a>
        <a class="layui-btn layui-btn-danger layui-btn-xs" lay-event="del">删除</a>
    </script>



    <script src="~/Scripts/jquery-1.10.2.js"></script>@*引入jquery*@
    <script src="~/Content/layui/layui.js"></script>@*/引入Layui的js*@
    <script>
        //创建实例  要想数据初始化 这里必须要写
        layui.use(['table', 'layer', 'form'], function ()
        {
            var table = layui.table;
            layer = layui.layer;
            form = layui.form;


            //搜索 ----------------------------------------------- Begin-----------------------------------------------------------
            var $ = layui.$, active =
              {
                  reload: function () {
                      var demoReload = $('#demoReload').val();//获取输入框的值
                      //执行重载
                      table.reload('test',
                          {
                              page:
                                  {
                                      curr: 1 //重新从第 1 页开始
                                  }
                        , where: { name: demoReload}//这里传参  向后台
                        , url: '/Home/Temp_search'//后台做模糊搜索接口路径
                        , method: 'post'
                          });
                  }
              };
            //这个是用于创建点击事件的实例
            $('.demoTable .layui-btn').on('click', function ()
            {
                var type = $(this).data('type');
                active[type] ? active[type].call(this) : '';
            });
            //搜索 ----------------------------------------------- End-----------------------------------------------------------






            //监听工具条 ----------------------------------------------- Begin-----------------------------------------------------------
            table.on('tool(test)', function (obj) {    //注:tool是工具条事件名,test是table原始容器的属性 lay-filter="对应的值"
                var data = obj.data; //获得当前行数据
                var layEvent = obj.event; //获得 lay-event 对应的值(也可以是表头的 event 参数对应的值)
                var tr = obj.tr; //获得当前行 tr 的DOM对象
                if (layEvent == 'detail')
                {
                    layer.open(
                      {
                          type: 2,
                          title: '编辑页面',
                          skin: 'layui-layer-molv',
                          shadeClose: false,
                          shade: 0.8,
                          area: ['880px', '550px'],
                          content: 'Url',//跳转的页面
                          cancel: function (index)
                          {
                              $(".layui-laypage-btn").click();//这里用于关闭Open时触发回调函数  刷新父页面数据  一定要引入Jquery
                          }

                      });
                    //注:在这里我不就做修改界面了  这里这只是一个弹出框  弹出你的修改页面  Content中你自定义自己的页面路径并传参数
                } else//删除数据
                {
                    //删除数据在这里可以使用Ajax异步  就和平常使用一样简单
                    $.post("/Home/DeleteInfoById", { id: data.UserId }, function (ret)
                    {
                        if (ret.code == "1") {
                            layer.msg(ret.msg, { icon: 1, time: 1500 }, function () {
                                obj.del(); //删除对应行(tr)的DOM结构,并更新缓存
                                $(".layui-laypage-btn").click();
                            });
                        } else
                        {
                            layer.msg(ret.msg, { icon: 2, time: 1500 });
                        }
                    });
                    
                }
            });

            //监听工具条 ----------------------------------------------- ENd-----------------------------------------------------------
        });
    </script>
</body>
</html>
后台代码
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Diagnostics.Contracts;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace WebApplication5.Controllers
{
    public class HomeController : Controller
    {
        public static List<UserInfo> list = new List<UserInfo>()//模拟数据源集合
        {
             new UserInfo
                {
                    UserId=1,
                    UserName="测试1",
                    UserAge=18,
                    UserSex="男"

                },
                new UserInfo
                {
                    UserId=2,
                    UserName="测试2",
                    UserAge=18,
                    UserSex="男"

                },
                new UserInfo
                {
                    UserId=3,
                    UserName="测试3",
                    UserAge=18,
                    UserSex="男"

                },
                new UserInfo
                {
                    UserId=4,
                    UserName="测试4",
                    UserAge=18,
                    UserSex="男"

                },
                new UserInfo
                {
                    UserId=5,
                    UserName="测试5",
                    UserAge=18,
                    UserSex="男"

                },
                new UserInfo
                {
                    UserId=6,
                    UserName="测试6",
                    UserAge=18,
                    UserSex="男"

                },
                new UserInfo
                {
                    UserId=7,
                    UserName="测试7",
                    UserAge=18,
                    UserSex="男"

                },
                new UserInfo
                {
                    UserId=8,
                    UserName="测试8",
                    UserAge=18,
                    UserSex="男"

                },
                new UserInfo
                {
                    UserId=9,
                    UserName="测试9",
                    UserAge=18,
                    UserSex="男"

                },
                new UserInfo
                {
                    UserId=10,
                    UserName="测试10",
                    UserAge=18,
                    UserSex="男"

                },
                new UserInfo
                {
                    UserId=11,
                    UserName="测试11",
                    UserAge=18,
                    UserSex="男"

                },
                new UserInfo
                {
                    UserId=12,
                    UserName="测试12",
                    UserAge=18,
                    UserSex="男"

                },
                new UserInfo
                {
                    UserId=13,
                    UserName="测试13",
                    UserAge=18,
                    UserSex="男"

                },
                new UserInfo
                {
                    UserId=14,
                    UserName="测试14",
                    UserAge=18,
                    UserSex="男"

                },
                new UserInfo
                {
                    UserId=15,
                    UserName="测试15",
                    UserAge=18,
                    UserSex="男"

                },
                new UserInfo
                {
                    UserId=16,
                    UserName="测试16",
                    UserAge=18,
                    UserSex="男"

                },
                new UserInfo
                {
                    UserId=17,
                    UserName="测试17",
                    UserAge=18,
                    UserSex="男"

                },
                new UserInfo
                {
                    UserId=18,
                    UserName="测试18",
                    UserAge=18,
                    UserSex="男"

                },
                new UserInfo
                {
                    UserId=19,
                    UserName="测试19",
                    UserAge=18,
                    UserSex="男"

                },
                new UserInfo
                {
                    UserId=20,
                    UserName="测试21",
                    UserAge=18,
                    UserSex="男"

                }
        };




        public ActionResult Index()
        {
            return View();
        }





        /// <summary>
        /// 将泛型对象序列化为json字符串
        /// </summary>
        /// <typeparam name="T">类型T</typeparam>
        /// <param name="obj">泛型对象</param>
        /// <returns>json字符串</returns>
        public static string JsonSerialize<T>(T obj)
        {
            Contract.Requires(obj != null);

            return JsonConvert.SerializeObject(obj);
        }




        /// <summary>
        /// 模糊查询
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        public JsonResult Temp_search(int limit, int page)
        {
            string key = Request["name"].ToString();//接收值
            List<UserInfo> listData = list.Where(a=>a.UserName.Contains(key)).ToList(); //查询
            int counts = listData.Count;
            listData = listData.Skip(limit * (page - 1)).Take(limit).ToList();
            return Json(new { code = 0, msg = "", count = counts, data = listData }, JsonRequestBehavior.DenyGet);
        }


        /// <summary>
        /// 初始化数据分页
        /// </summary>
        /// <param name="page"></param>
        /// <param name="limit"></param>
        /// <returns></returns>
        public string Get_Data(int page,int limit)
        {

            List<UserInfo> listData = list;
            int count = listData.Count;//记录总条数
            listData = listData.Skip(limit * (page - 1)).Take(limit).ToList();//MVC分页
            return "{\"code\":0,\"msg\":\"\",\"count\":" + count + ",\"data\":" +JsonSerialize(listData) + "}";//返回数据格式
        }




        /// <summary>
        /// 删除信息
        /// </summary>
        /// <returns></returns>
        [HttpPost]
        public JsonResult DeleteInfoById()
        {
            int id = 0;
            string code = "1";
            string msg = "删除成功!";
            try
            {
                id =int.Parse(Request["id"].ToString());
                UserInfo u = new UserInfo(); ;
                foreach (var item in list)
                {
                    if (item.UserId==id)
                    {
                        u = item;
                        break;
                    }
                }
                list.Remove(u);
            }
            catch (Exception ex)
            {

                msg=ex.Message;
                code = "2";
            }
            return Json(new { code=code,msg=msg},JsonRequestBehavior.DenyGet);
        }
    }
}

码字不易   希望能帮到大家   喜欢的话给个关注吧。委屈大笑

未完待续..........

猜你喜欢

转载自blog.csdn.net/BigBossc/article/details/80510246