mvc 封装控件使用mvcpager
2024-08-29 15:58:07
具体使用如下:
前台部分:
@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插件,暂未开发自己的插件。
最新文章
- 最强 Android Studio 使用小技巧和快捷键
- Android 如何制作九宫格图片(.9.png)
- Java程序设计之整数分解
- Leetcode #28. Implement strStr()
- C# - Try catch 中 使用 End()
- HDU-------(2795)Billboard(线段树区间更新)
- 【转】Python numpy库的nonzero函数用法
- java servlet上传文件并把文件内容显示在网页中
- BZOJ_1026_[SCOI2009]_windy数_(数位dp)
- n个灯,k个人的开灯问题
- [MODx] Solve cannot upload large file
- java笔记之静态修饰附和单例设计模式
- Hbuilder 常用快捷键汇总
- WCF技术剖析之二十七: 如何将一个服务发布成WSDL[基于HTTP-GET的实现](提供模拟程序)
- 【ios开发】Block编程
- Python中List和Tuple类型
- CRM牛人博客
- HTML杂项和HTML废弃标签
- linux 时钟时间,用户CPU时间,系统CPU时间 .
- vue装逼神器简述