在 asp.net mvc中的简单分页算法
2020-12-13 04:57
标签:des cPage style blog class code 第二步:建立一个cshtml分部页在Views/Shared中,命名为Pager.cshtml 调用方法: 第二步:在视图中(最后一行): 效果: 在 asp.net mvc中的简单分页算法,搜素材,soscw.com 在 asp.net mvc中的简单分页算法 标签:des cPage style blog class code 原文地址:http://www.cnblogs.com/bwangel/p/mvcpager.html//第一步:建立如下分页实体类:
namespace MVCPager.Helpers
{
/// @using MVCPager.Helpers;
@{
Layout = null;
var _id = ViewContext.RouteData.Values["id"];
var _action = ViewContext.RouteData.Values["action"].ToString();
Pager _pager = ViewBag.Pager as Pager;
}
div style="text-align:right">
ul class="pagination">
@if (_pager.PageIndex == 1)
{
li>a href="###">«a>li>
}
else
{
li>
@Html.ActionLink("?", _action, new { id = _id, page = _pager.PageIndex - 1 })
li>
}
@foreach (int p in _pager.Pages)
{
if (p 0)
{
以上操作完成后,就形成了一个可反复重用的分页组件。
第一步:在控制器中:
var
articles = (id ==
null
|| id == 0) ? _db.Articles : _db.Articles.Where(art => art.CatalogId == id);
var
recordCount = articles.Count();
articles = articles.OrderByDescending(art => art.EditTime)
.Skip((page.Value - 1) * PAGE_SZ)
.Take(PAGE_SZ);
ViewBag.Pager =
new
Pager()
{
PageIndex = page.Value,
PageSize = PAGE_SZ,
RecordCount = recordCount,
};
return
View(articles);
table class="table">
tr>
th>
@Html.DisplayNameFor(model => model.Title)
th>
th>
@Html.DisplayNameFor(model => model.Editor.UserName)
th>
th>
@Html.DisplayNameFor(model => model.EditTime)
th>
th>
@Html.DisplayNameFor(model => model.Catalog.Name)
th>
th>th>
tr>
@foreach (var item in Model) {
tr>
td>
@Html.DisplayFor(modelItem => item.Title)
td>
td>
@Html.DisplayFor(modelItem => item.Editor.UserName)
td>
td>
@Html.DisplayFor(modelItem => item.EditTime)
td>
td>
@Html.DisplayFor(modelItem => item.Catalog.Name)
td>
td>
@Html.ActionLink("编辑", "Edit", new { id=item.Id }) |
@Html.ActionLink("查看", "Details", new { id=item.Id }) |
@Html.ActionLink("删除", "Delete", new { id=item.Id })
td>
tr>
}
table>
@Html.Partial("Pager")
自我评价:调用还算简单。能满足1...5 6 7 8 9 10 ... 100 这样的分页样式。