分页采用laypage使用起来比较简单但是功能很齐全,数据库访问使用petapoco,bootstrap用的是flatlab模版,采用mvc的repository模式。
先来一张效果图;
下面来看具体实现;
Controller:
rush:js;">
public ActionResult Index()
{
return View();
}
///
/// 分布视图
///
///
aram name="query">
///
Repository
rush:js;">
public Page 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(query.PageIndex,query.PageSize,sql);
}
js:
rush: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({},{ 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:
rush:js;">
@{
ViewBag.Title = "Index";
Layout = "~/Views/Shared/_Layout.cshtml";
}
@section js{
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。