mvc 封装控件使用mvcpager
具体使用如下:
前台部分:
@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 页 @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的更多相关文章
- MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件
类似于多层级的角色与权限控制功能,用MVC实现MVC树控件,mvc中应用treeview,实现复选框树的多层级表单控件.最近我们的项目中需要用到树型菜单,以前使用WebForm时,树型菜单有微软提供的 ...
- mvc 日历控件
第二个是日历控件,在网上查了一个普通的日历控件,也生成了下拉的日历样子,但是一些脚本比如选择年月,需要一些时间,最后只好套用了My97 DatePicker,这样以来其实简单多了. 第一步:下载 My ...
- MVC通用控件库展示-MVC4.0+WebAPI+EasyUI+Knockout--SNF快速开发平台3.0
在我们开发中怎么才能提高效率,就是要有大量的公共组件(控件)可以直接使用而不用自己再开发一遍,既然是公共控件那也得简单实用才行.下面就介绍一下SNF-MVC当中的控件库. 总体控件库展示: 1.通用用 ...
- wheelView实现滚动选择 三方开源的封装控件 spannableString autofitTextView、PinnedSectionListView SwipeListView等等
wheelView多用于popupwindow用来滚动选择条目 github上的开源三方控件 spannableString autofitTextView.PinnedSectionLi ...
- 一步一步学Silverlight 2系列(8):使用样式封装控件观感
述 Silverlight 2 Beta 1版本发布了,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, ...
- WPF封装控件时 检测是否在设计模式中
原文:WPF封装控件时 检测是否在设计模式中 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/Vblegend_2013/article/detail ...
- 9.2.3 .net core 通过TagHelper封装控件
.net core 除了继续保留.net framework的HtmlHelper的写法以外,还提供了TagHelper和ViewComponent方式生成控件. 我们本节说的是使用TagHelper ...
- mvc file控件无刷新异步上传操作
前言 上传文件应该是很常见必不可少的一个操作,网上也有很多提供的上传控件.今天遇到一个问题:input控件file无法进行异步无刷新上传.真真的感到别扭.所以就尝试这去处理了一下.主要分三个部分:上传 ...
- AceAdmin In MVC之控件
AceAdmin有很多Html控件,而下载下来之后全部混杂在一起,想用一个控件有时得调整半天,干脆整理出一个版本,而且结合起来MVC的封装.以后就不用一个js css的调了. 在MVC中Html的控件 ...
随机推荐
- 管道(pipe),进程之间的共享内存(Manager,Value)
1 管道(了解) from multiprocessing import Pipe con1,con2 = Pipe() 管道是不安全的. 管道是用于多进程之间通信的一种方式. 如果在单进程中使用管道 ...
- [Python] numpy.logspace
numpy.logspace(start, stop, num=50, endpoint=True, base=10.0, dtype=None) starting value := base** ...
- Tomcat组成与工作原理
laosijikaichele 关注 0.2 2018.06.02 10:44 字数 5175 阅读 2798评论 0喜欢 8 原文:https://juejin.im/post/58eb5fdda ...
- MVC,MVP 和 MVVM 模式如何选择?
转摘:http://www.linuxidc.com/Linux/2015-10/124622.htm 前言 做客户端开发.前端开发对MVC.MVP.MVVM这些名词不了解也应该大致听过,都是为了解决 ...
- OpenCL 查询平台和设备
▶ 查询平台和设备的代码以结果,放在这里方便以后逐渐扩充和查询(没有营养) #include <stdio.h> #include <stdlib.h> #include &l ...
- MPI Hello World
▶<并行程序设计导论>第三章(用 MPI 进行分布式内存编程)的第一个程序样例. ● 代码 #include <stdio.h> #include <string.h& ...
- CentOS 7.4 安装部署 iRedMail 邮件服务器
在公司部署了一套开源的邮件网关Scrollout F1用来测试,由于Scrollout F1需要使用IMAP协议连接到邮件服务器上的隔离邮箱,抓取GOOD和BAD文件夹里的邮件进行贝叶斯学习,但公司的 ...
- Maven 异常
Archive for required library: '*****org/javassist/javassist/3.21.0-GA/javassist-3.21.0-GA.jar' in pr ...
- JS时间转时间戳,时间戳转时间。时间显示模式。
函数内容 // 时间转为时间戳 function date2timestamp(datetime) { var timestamp = new Date(Date.parse(datetime)); ...
- Python 中的垃圾回收机制(转载)
from: https://foofish.net/python-gc.html GC作为现代编程语言的自动内存管理机制,专注于两件事:1. 找到内存中无用的垃圾资源 2. 清除这些垃圾并把内存让出来 ...