1. 程式人生 > >前端外掛-LayUI-----表格的使用(增刪查改、搜尋、重新整理)

前端外掛-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);
        }
    }
}

碼字不易   希望能幫到大家   喜歡的話給個關注吧。委屈大笑

未完待續..........