具体使用如下:

前台部分:

@RenderPage("~/Views/Controls/_Pagebar.cshtml",

    new PageBar

    {

        pageIndex = Model.CurrentPageIndex,

        recordCount = Model.TotalItemCount,

        UpdateTargetId = "expList",//此处填写需要更新的div(或其他)容器的id

        pageSize=,

        DataFormId = "Submit_Expense"//此处填写需要提交的表单的id

})

需要新建一个PagerBar类,如下:

  /// <summary>

        /// 当前页码

        /// </summary>

        public int pageIndex;

        /// <summary>

        /// 记录总条目数

        /// </summary>

        public int recordCount;

        /// <summary>

        /// 每页显示记录的数量

        /// </summary>

        public int pageSize;

        /// <summary>

        /// 更新容器的ID

        /// </summary>

        public string UpdateTargetId;

        /// <summary>

        /// 表单ID

        /// </summary>

        public string DataFormId;

  /// <summary>

        /// 访问路由

        /// </summary>

        public string RouteUrl= HttpContext.Current.Request.Url.ToString();

pagebar

控件代码

@{
//异步ajax刷新
var pageBar = (PageBar)PageData.FirstOrDefault().Value;
int pageindex = pageBar.PageIndex-;
int spitindex = ;
int pageSize = pageBar.PageSize;
var pageCount = ;
int recordCount = pageBar.RecordCount;
int pagecount = recordCount % pageSize == ? recordCount / pageSize : recordCount / pageSize + ;
var routeUrl = pageBar.RouteUrl;
var updateTargetId = pageBar.UpdateTargetId;
var dataFormId = pageBar.DataFormId;
var pageLast = pageindex > ;
var pageNext = pageindex != pagecount;
}
<style type="text/css">
.disabled {
color: # !important;
}
.disabled {
cursor: not-allowed;
}
</style>
@if (pagecount > )
{
<div class="row" style="height: 80px; ">
<div class="col-md-8 col-sm-8">
<ul class="pagination"> <li calss="@pageLast">
@if (pageLast)
{
<a href="javascript:void(0)" onclick="pageSkip(@pageindex-1)">上页</a> }
else
{
<a href="javascript:void(0)" class="disabled">上页</a>
}
</li>
@{ spitindex = pageindex - pageSize;}
@if (spitindex > pageSize)
{
<li><a href="javascript:void(0)" onclick="pageSkip(1)"></a> </li>
<li><a href="javascript:void(0)" onclick="pageSkip(@spitindex - 2)">...</a> </li>
}
else
{
for (int i = ; i < spitindex; i++)
{
<li><a href="javascript:void(0)" onclick="pageSkip(@i)">@Html.Raw(i + )</a> </li>
}
}
@for (int i = pageindex - ; i < pageindex; i++)
{
if (i >= pageindex || i < )
{
continue;
}
<li><a href="javascript:void(0)" onclick="pageSkip(@i)">@Html.Raw(i + )</a> </li>
}
<li class="active"><a href="javascript:void(0)" id="selectpage"><b>@Html.Raw(pageindex + )</b> </a></li>
@for (int i = pageindex + ; i < pagecount; i++)
{
if (i >= pageindex + pageCount)
{
break;
}
<li><a href="javascript:void(0)" onclick="pageSkip(@i+1)">@Html.Raw(i + )</a> </li>
}
@{ spitindex = pageindex + pageCount; }
@if (pagecount - pageSize > spitindex)
{
<li><a href="javascript:void(0)" onclick="pageSkip(@spitindex + 2)">...</a> </li>
<li><a href="javascript:void(0)" onclick="pageSkip(@pagecount - 1)">@pagecount</a> </li>
}
else
{
for (int i = spitindex; i < pagecount; i++)
{
<li><a href="javascript:void(0)" onclick="pageSkip(@i)">@Html.Raw(i + )</a> </li>
}
}
<li>
@if (pageNext)
{
<a href="javascript:void(0)" onclick="pageSkip(@pageindex + 1)">下页</a>
}
else
{
<a href="javascript:void(0)" class="disabled">下页</a>
}
</li> </ul>
</div>
<div class="col-md-2 col-sm-2">
<div class="input-group" style="margin: 20px 0">
<input type="text" id="pageIndexBox" class="form-control input-sm" />
<span class="input-group-btn"><button class="btn btn-primary btn-sm" onclick="goToPage()">跳转</button></span>
</div>
</div>
<div class="col-md-2 col-sm-2" style="line-height: 70px; text-align:right;">共 @pagecount 页&nbsp; @recordCount 条记录</div>
</div>
}
<script type="text/javascript"> function pageSkip(pageIndex) {
var requestUrl = '@routeUrl';
var formData = $("#@dataFormId").serialize() + "&pageIndex=" + pageIndex;
//debugger
$.post(requestUrl, formData, function (pageobj) {
$("#@updateTargetId").html(pageobj);
}, "html");
} function goToPage() {
var pageIndex = $("#pageIndexBox").val();
pageSkip(pageIndex);
}
</script>

后台部分:

采用的是MVCPager插件,暂未开发自己的插件。

mvc 封装控件使用mvcpager的更多相关文章

  1. MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件

    类似于多层级的角色与权限控制功能,用MVC实现MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件.最近我们的项目中需要用到树型菜单,以前使用WebForm时,树型菜单有微软提供的 ...

  2. mvc 日历控件

    第二个是日历控件,在网上查了一个普通的日历控件,也生成了下拉的日历样子,但是一些脚本比如选择年月,需要一些时间,最后只好套用了My97 DatePicker,这样以来其实简单多了. 第一步:下载 My ...

  3. MVC通用控件库展示-MVC4.0+WebAPI+EasyUI+Knockout--SNF快速开发平台3.0

    在我们开发中怎么才能提高效率,就是要有大量的公共组件(控件)可以直接使用而不用自己再开发一遍,既然是公共控件那也得简单实用才行.下面就介绍一下SNF-MVC当中的控件库. 总体控件库展示: 1.通用用 ...

  4. wheelView实现滚动选择 三方开源的封装控件 spannableString autofitTextView、PinnedSectionListView SwipeListView等等

    wheelView多用于popupwindow用来滚动选择条目 github上的开源三方控件     spannableString   autofitTextView.PinnedSectionLi ...

  5. 一步一步学Silverlight 2系列(8):使用样式封装控件观感

    述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...

  6. WPF封装控件时 检测是否在设计模式中

    原文:WPF封装控件时 检测是否在设计模式中 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Vblegend_2013/article/detail ...

  7. 9.2.3 .net core 通过TagHelper封装控件

    .net core 除了继续保留.net framework的HtmlHelper的写法以外,还提供了TagHelper和ViewComponent方式生成控件. 我们本节说的是使用TagHelper ...

  8. mvc file控件无刷新异步上传操作

    前言 上传文件应该是很常见必不可少的一个操作,网上也有很多提供的上传控件.今天遇到一个问题:input控件file无法进行异步无刷新上传.真真的感到别扭.所以就尝试这去处理了一下.主要分三个部分:上传 ...

  9. AceAdmin In MVC之控件

    AceAdmin有很多Html控件,而下载下来之后全部混杂在一起,想用一个控件有时得调整半天,干脆整理出一个版本,而且结合起来MVC的封装.以后就不用一个js css的调了. 在MVC中Html的控件 ...

随机推荐

  1. 使用promisify来流程化异步操作

    现代js包括nodejs中有很多函数都是异步执行的, 我们总是需要写一个回调函数并且作为最后以一个参数传入,而我希望的是能像写promise这样的回调 promise .then() .then() ...

  2. MyBatis 中#与$的区别

    今天在工作中有个点击排序的功能调试了许久,终寻因,总结之.  需求是这样的,页面有个table,有一列的上下箭头可点击并排序.对于这种需求,我的mybatis.xml的sql配置写成了如下: < ...

  3. 关于tcp的三次握手与四次挥手,以及粘包

    tcp三次握手: TCP是因特网中的传输层协议,使用三次握手协议建立连接.当主动方发出SYN连接请求后,等待对方回答SYN+ACK[1],并最终对对方的 SYN 执行 ACK 确认.这种建立连接的方法 ...

  4. ckeditor源码编辑模式,添加style、javascript内容丢失的解决

    我使用ckeditor 我在编辑的使用源码编辑,保存内容包含javascript.style标签的时候,数据库中有javascript.style标签 , 输入到页面也可以执行,但是我再次编辑的时候就 ...

  5. JAVA Serverlet 请求头信息和响应头信息

    <1>获取请求头信息 //获取请求头信息的全部名称 Enumeration<String> header = request.getHeaderNames(); while(h ...

  6. HTML5 Canvas ( 径向渐变, 升级版的星空 ) fillStyle, createRadialGradient

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  7. CSS 3栏自适应布局

    绝对定位 css html,body{margin: 0px;height:100%;} div{height: 100%;} .left,.right {top: 0px;position: abs ...

  8. git 提交文件到gitee

    1.新建文件夹   打开gitbash  初始化仓库 git.init 2.把要提交的文件copy到文件夹 3.git add. 4.git remote add master(分支)  远程仓库 5 ...

  9. 使用Ping来做等待的时间计算

    利用ping两次发送消息之间的间隔时间.ping在发送多个消息时,在得到上一次消息的回应后,它会再等待1秒的时间才发送下一次消息,而这个回应时间因机型.系统和网络配置而不同,其中IP地址尤其关键,只有 ...

  10. 机器学习入门-贝叶斯中文新闻分类任务 1. .map(做标签数字替换) 2.CountVectorizer(词频向量映射) 3.TfidfVectorizer(TFDIF向量映射) 4.MultinomialNB()贝叶斯模型构建

    1.map做一个标签的数字替换 2.vec = CountVectorizer(lowercase=False, max_features=4000)  # 从sklean.extract_featu ...