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 相关文章推荐
asp 取文本框名称代码
Dec 02 Javascript
JavaScript 学习笔记(十六) js事件
Feb 01 Javascript
使用jQuery的将桌面应用程序引入浏览器
Nov 19 Javascript
JavaScript中使用构造器创建对象无需new的情况说明
Mar 01 Javascript
jQuery :first选择器使用介绍
Aug 09 Javascript
js函数定时器实现定时读取系统实时连接数
Apr 30 Javascript
删除条目时弹出的确认对话框
Jun 05 Javascript
jQuery Raty 一款不错的星级评分插件
Aug 24 Javascript
jQuery UI仿淘宝搜索下拉列表功能
Jan 10 Javascript
JS使用遮罩实现点击某区域以外时弹窗的弹出与关闭功能示例
Jul 31 Javascript
vue.extend与vue.component的区别和联系
Sep 19 Javascript
vue实现todolist功能、todolist组件拆分及todolist的删除功能
Apr 11 Javascript
针对后台列表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
图象函数中的中文显示
2006/10/09 PHP
一个很不错的PHP翻页类
2009/06/01 PHP
PHP实现多进程并行操作的详解(可做守护进程)
2013/06/18 PHP
PHP 反射(Reflection)使用实例
2015/05/12 PHP
php 的反射详解及示例代码
2016/08/25 PHP
Laravel框架使用Redis的方法详解
2018/05/30 PHP
php实现二叉树中和为某一值的路径方法
2018/10/14 PHP
jQuery判断当前点击的是第几个li的代码
2014/09/26 Javascript
jQuery的text()方法用法分析
2014/12/20 Javascript
JavaScript跨平台的开源框架NativeScript
2015/03/24 Javascript
JavaScript中的Math.LOG2E属性使用详解
2015/06/14 Javascript
基于JavaScript实现定时跳转到指定页面
2016/01/01 Javascript
体验jQuery和AngularJS的不同点及AngularJS的迷人之处
2016/02/02 Javascript
Javascript oop设计模式 面向对象编程简单实例介绍
2016/12/13 Javascript
js中创建对象的几种方式
2017/02/05 Javascript
JavaScript面试出现频繁的一些易错点整理
2018/03/29 Javascript
element-ui使用导航栏跳转路由的用法详解
2018/08/22 Javascript
vue-cli3搭建项目的详细步骤
2018/12/05 Javascript
ES6中的class是如何实现的(附Babel编译的ES5代码详解)
2019/05/17 Javascript
jquery validate 实现动态增加/删除验证规则操作示例
2019/10/28 jQuery
vuex存值与取值的实例
2019/11/06 Javascript
Python MD5文件生成码
2009/01/12 Python
python3学习笔记之多进程分布式小例子
2018/02/13 Python
Windows环境下python环境安装使用图文教程
2018/03/13 Python
利用python实现微信头像加红色数字功能
2018/03/26 Python
python文件选择对话框的操作方法
2019/06/27 Python
美国廉价机票预订网站:Cheapfaremart
2018/04/28 全球购物
致全体运动员广播稿
2014/02/01 职场文书
理工学院学生自我鉴定
2014/02/23 职场文书
小班下学期评语
2014/05/04 职场文书
培训通知
2015/04/17 职场文书
文明旅游倡议书
2015/04/28 职场文书
校运会班级霸气口号
2015/12/24 职场文书
小学美术教学反思
2016/02/17 职场文书
初一语文教学反思
2016/03/03 职场文书
Redis 哨兵机制及配置实现
2022/03/25 Redis