mvc 、bootstrap 结合分布式图简单实现分页


Posted in Javascript onOctober 10, 2016

分页采用laypage使用起来比较简单但是功能很齐全,数据库访问使用petapoco,bootstrap用的是flatlab模版,采用mvc的repository模式。

先来一张效果图;

mvc 、bootstrap 结合分布式图简单实现分页

下面来看具体实现;

Controller:

public ActionResult Index()
{
return View();
}
/// <summary>
/// 分布视图
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public ActionResult List(UserQuery query)
{
var list = UserRepository.GetList(query);
return View(list);
}

Repository

public Page<User> GetList(UserQuery query)
{
var sql = Sql.Builder.Append("select Id,UserName,Password,Age,Gender,CreateTime from Users where 1=1 ");
if (!string.IsNullOrWhiteSpace(query.UserName))
{
sql.Append("and username like @0", "%" + query.UserName + "%");
}
return Page<User>(query.PageIndex, query.PageSize, sql);
}

js:

var users = {
lpage: function (query) {
var self = this;
var url = '/test/list?r=' + Math.random();
$.get(url,
query,
function (h) {



 //get 请求分布视图,返回html,把html添加到对应的div里
$('#datadiv').html(h);
laypage({
cont: 'pager',
pages: $('#pagecount').val(),
skin: 'molv',
skip: true,
curr: query.pageindex,
jump: function (obj, first) {
if (!first) {
var nquery = $.extend({}, query, { pageindex: obj.curr });
self.lpage(nquery);
}
}
});
},
'html');
},
load: function () {


//搜索条件,序列化成对象
var query = users.serializeElements($(':input', '#searchdiv'));
query.pageindex = 1;
query.pagesize = 10;
users.lpage(query);
},
init: function () {
users.load();
$('#searchbtn').click(function () {
users.load();
});
},
serializeElements: function (array) {
var items = {};
array.each(function () {
var fieldname = this.name;
if (fieldname) {
var self = $(this);
if (self.is(':checkbox') || self.is(':radio')) {
if (self.attr('checked'))
items[fieldname] = $(this).val();
} else {
var val = self.val();
if (!self.is(':input')) {
val = val || $.trim(self.text());
}
if (val && val.length === 0) return;
items[fieldname] = val;
}
}
});
return items;
}
}

html:

@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@section js{
<script src="~/assets/laypage/laypage.js"></script>
<script src="~/Scripts/ixxiyy-js/users.js"></script>
<script type="text/javascript">
users.init();
</script>
}
<!--main content start-->
<section id="main-content">
<section class="wrapper">
<!-- page start-->
<div class="row">
<div class="col-lg-12">
<section class="panel">
<header class="panel-heading">
<div class="form-inline" id="searchdiv">
<div class="form-group">
<input type="text" class="form-control" placeholder="登录名" name="UserName" />
</div>
<div class="form-group">
<button type="button" class="btn btn-primary" id="searchbtn"><i class="fa fa-search"></i>搜索</button>
</div>
</div>
</header>
</section>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<section class="panel" id="datadiv"></section>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<div class="pagination" id="pager"></div>
</div>
</div>
<!-- page end-->
</section>
</section>
<!--main content end-->

分布视图:

@{
Layout = null;
}
@model PetaPoco.Page<IxxIyy.Core.IxxIyyDB.User>
<input type="hidden" value="@Model.TotalPages" id="pagecount" />
<table class="table table-striped table-advance table-hover">
<thead>
<tr>
<th><i class="fa fa-bullhorn"></i>UserName</th>
<th class="hidden-phone"><i class="fa fa-question-circle"></i>Age</th>
<th><i class="fa fa-bookmark"></i>Gender</th>
<th><i class="fa fa-edit"></i>CreateTime</th>
</tr>
</thead>
<tbody>
@if (Model.TotalItems == 0)
{
<tr>
<td colspan="4">暂无数据</td>
</tr>
}
@foreach (var d in Model.Items)
{
<tr>
<td><a href="#">@d.UserName</a></td>
<td class="hidden-phone">@d.Age</td>
<td>@d.Gender</td>
<td>@d.CreateTime.Value.ToString("yyyy-MM-dd HH:mm")</td>
</tr>
}
</tbody>
</table>

以上所述是小编给大家介绍的mvc 、bootstrap 结合分布式图简单实现分页,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
超简单的jquery的AJAX用法
May 10 Javascript
javascript forEach通用循环遍历方法
Oct 11 Javascript
jQuery实现为LI列表前3行设置样式的方法【2种方法】
Sep 04 Javascript
bootstrap PrintThis打印插件使用详解
Feb 20 Javascript
js实现百度登录框鼠标拖拽效果
Mar 07 Javascript
vue获取当前点击的元素并传值的实例
Mar 09 Javascript
JQuery模拟实现网页中自定义鼠标右键菜单功能
Nov 14 jQuery
Three.JS实现三维场景
Dec 30 Javascript
mpvue小程序循环动画开启暂停的实现方法
May 15 Javascript
vue element-ui之怎么封装一个自己的组件的详解
May 20 Javascript
vue 清空input标签 中file的值操作
Jul 21 Javascript
vue实现简易计算器功能
Jan 20 Vue.js
针对后台列表table拖拽比较实用的jquery拖动排序
Oct 10 #Javascript
KnockoutJS 3.X API 第四章之数据控制流foreach绑定
Oct 10 #Javascript
KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定
Oct 10 #Javascript
KnockoutJS 3.X API 第四章之数据控制流with绑定
Oct 10 #Javascript
JS命令模式例子之菜单程序
Oct 10 #Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
Oct 10 #Javascript
KnockoutJS 3.X API 第四章之click绑定
Oct 10 #Javascript
You might like
php 删除cookie和浏览器重定向
2009/03/16 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
PHP中关于php.ini参数优化详解
2020/02/28 PHP
JQuery Tips(2) 关于$()包装集你不知道的
2009/12/14 Javascript
jQuery实现动画效果的实例代码
2013/05/07 Javascript
JS中attr和prop属性的区别以及优先选择示例介绍
2014/06/30 Javascript
jQuery实现的网页左侧在线客服效果代码
2015/10/23 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
JS闭包、作用域链、垃圾回收、内存泄露相关知识小结
2016/05/16 Javascript
mvvm双向绑定机制的原理和实现代码(推荐)
2016/06/07 Javascript
微信小程序 倒计时组件实现代码
2016/10/24 Javascript
canvas绘图不清晰的解决方案
2017/02/28 Javascript
vue2手机APP项目添加开屏广告或者闪屏广告
2017/11/28 Javascript
JS控制鼠标拒绝点击某一按钮的实例
2017/12/29 Javascript
js实现轮播图的完整代码
2020/10/26 Javascript
Vue中使用clipboard实现复制功能
2018/09/05 Javascript
微信小程序实现同一页面取值的方法分析
2019/04/30 Javascript
微信小程序云开发修改云数据库中的数据方法
2019/05/18 Javascript
JS实现音量控制拖动
2020/01/15 Javascript
微信小程序实现聊天室
2020/08/21 Javascript
vue使用transition组件动画效果的实例代码
2021/01/28 Vue.js
Python升级提示Tkinter模块找不到的解决方法
2014/08/22 Python
为python设置socket代理的方法
2015/01/14 Python
Python读取Excel的方法实例分析
2015/07/11 Python
Python的Django框架中使用SQLAlchemy操作数据库的教程
2016/06/02 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
2018/03/14 Python
Python爬虫之正则表达式基本用法实例分析
2018/08/08 Python
Python3 itchat实现微信定时发送群消息的实例代码
2019/07/12 Python
详解canvas绘图时遇到的跨域问题
2018/03/22 HTML / CSS
联想加拿大官方网站:Lenovo Canada
2018/04/05 全球购物
大学英语专业求职信
2014/06/21 职场文书
初婚初育证明范本
2014/11/24 职场文书
党员剖析材料范文
2014/12/18 职场文书
红色经典电影观后感
2015/06/18 职场文书
2019如何书写演讲稿?
2019/07/01 职场文书
vue整合百度地图显示指定地点信息
2022/04/06 Vue.js