優點:
1.選用layui國產。
2.layui有一套完整的前端框架,基本哪來就可以用。
3.選用vue去掉了很多頁面元素js拼接的繁瑣,及不易修改。
4.vue里面還有一些過濾器等,用起來很方便。
列表頁:
1.用vue數據綁定,加載表格。
2.用layui做分頁處理。
3.用的bootstrap做列表樣式。也可以用layui的一套列表樣式
4.用vue插件axios,做ajax請求。
先上代碼
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
<link href="../bootstrap-3.3.7/css/bootstrap.css" rel="stylesheet" />
<link href="animate.css" rel="stylesheet" />
<link href="../layui/layui/css/layui.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script src="../layui/layui/layui.js"></script>
</head>
<body>
<div id="app" class="container">
<table class="table table-bordered ">
<thead>
<tr>
<td>Id</td>
<td>姓名</td>
<td>年齡</td>
<td>性別</td>
</tr>
</thead>
<tbody>
<tr class="animated jello" v-for="item in list">
<td>{{item.Id}}</td>
<td>{{item.Name}}</td>
<td>{{item.Age}}</td>
<td>{{item.Sex | sex}}</td>
</tr>
</tbody>
</table>
<div id="laypage"></div>
</div>
<script>
//var total = 0;
var vm = new Vue({
el: '#app',
data: {
list: [],
total: -1,
pageIndex: 1,
pageSize:2,
},
methods: {
loadList: function () {
axios.get('/data.ashx?pageIndex=' + this.pageIndex + '&pageSize=' + this.pageSize).then(result => {
console.log(result);
this.list = result.data.Data;
this.total = result.data.Total;
if (this.pageIndex==1) {
loadPage();
}
});
}
},
//鈎子函數:data和methods加載后執行
created: function () {
this.loadList();
//loadPage();
},
filters: {
sex: function (data) {
return data ? '男' : '女';
}
}
})
function loadPage() {
layui.use(['laypage', 'layer'], function () {
var laypage = layui.laypage,
layer = layui.layer;
laypage.render({
elem: 'laypage',
count: vm.total, //數據量
limit: vm.pageSize,//每頁限制
jump: function (obj, first) { //點擊跳轉函數
//obj包含了當前分頁的所有參數,比如:
console.log(obj);
console.log(first);
//首次不執行
if (!first) {
vm.pageIndex = obj.curr;
vm.loadList();
//loadData(obj.curr, obj.limit);
}
}
});
});
}
</script>
</body>
</html>
后端請求數據代碼:這里寫的比較簡單,做個演示。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
namespace 前端
{
/// <summary>
/// data 的摘要說明
/// </summary>
public class data : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
string pageIndex = context.Request.QueryString["pageIndex"];
string pageSize = context.Request.QueryString["pageSize"];
List<Person> list = new List<Person>();
list.Add(new Person() { Id=1,Name="張三",Age=23,Sex=1});
list.Add(new Person() { Id = 2, Name = "斯蒂芬", Age = 23, Sex = 0 });
list.Add(new Person() { Id = 3, Name = "非公黨委", Age = 29, Sex = 1 });
var resultList = list.Skip((int.Parse(pageIndex) - 1) * int.Parse(pageSize)).Take(int.Parse(pageSize)).ToList();
context.Response.ContentType = "text/plain";
context.Response.Write(Newtonsoft.Json.JsonConvert.SerializeObject(new {
Total = list.Count,
Data = resultList
}));
}
public bool IsReusable
{
get
{
return false;
}
}
public class Person
{
public int Id { get; set; }
public string Name { get; set; }
public int Age { get; set; }
public int Sex { get; set; }
}
}
}
