MVC3 使用mvcpager实现数据分页

2 篇文章 0 订阅

1:下载mvcpager分页控件 mvcpager.dll

2:写好公共的分页代码 引用 Webdiyer.WebControls.Mvc;
       

        int PageSize = 10;
        /// <summary>
        /// 分页(每页记录数默认)
        /// </summary>
        /// <typeparam name="T">泛型TEntity实体</typeparam>
        /// <param name="pageId">页码</param>
        /// <returns>页数据列表</returns>
        public PagedList<T> GetPageData<T>(int? pageId, IQueryable<T> query)
        {
            return GetPageData<T>(pageId, PageSize, query);
        }

        /// <summary>
        /// 分页代码        /// </summary>
        /// <typeparam name="T">泛型TEntity实体</typeparam>
        /// <param name="pageId">页码</param>
        /// <param name="pageSize">每页显示条数</param>
        /// <returns>页数据列表</returns>
        public PagedList<T> GetPageData<T>(int? pageId, int pageSize, IQueryable<T> query)
        {
            // 总页码数
            int totalCount = query.Count();
            int pageCount = (totalCount + pageSize - 1) / pageSize;
            // 页码大于总页数
            if (pageId.HasValue && pageId.Value > 1 && pageId.Value > pageCount)
                pageId = pageCount;
            int skipCount = pageId.HasValue && pageId.Value > 1 ? (pageId.Value - 1) * pageSize : 0;
            ViewBag.SkipCount = skipCount;
            // 页记录数据列表
            PagedList<T> tList = new PagedList<T>(query.Skip(skipCount).Take(pageSize), pageId ?? 1, pageSize, totalCount);
            return tList;
        }  



 在 Controller页面:代码如下:

        //分页页面
       public ActionResult Index(int? id = 1)
        {
            List<User> list = GetUserList();
            PagedList<User>  pglist=  GetPageData<User>(id, list.AsQueryable());
            return View(pglist);
        } 
     //获取数据集  
      public List<User> GetUserList()
       {
            List<User> user = new List<User>() {
             new User(){ ID="0", Name="0", Sex="男" ,Phone="110", Address="0110100"},
             new User(){ ID="1", Name="1", Sex="男" ,Phone="110", Address="0110100"},
             new User(){ ID="2", Name="2", Sex="男" ,Phone="110", Address="0110100"},
             new User(){ ID="3", Name="3", Sex="男" ,Phone="110", Address="0110100"},
             new User(){ ID="4", Name="4", Sex="男" ,Phone="110", Address="0110100"},
             new User(){ ID="5", Name="5", Sex="男" ,Phone="110", Address="0110100"},
             new User(){ ID="6", Name="6", Sex="男" ,Phone="110", Address="0110100"},
             new User(){ ID="7", Name="7", Sex="男" ,Phone="110", Address="0110100"},
             new User(){ ID="8", Name="8", Sex="男" ,Phone="110", Address="0110100"},
             new User(){ ID="9", Name="9", Sex="男" ,Phone="110", Address="0110100"},
             new User(){ ID="10", Name="10", Sex="男" ,Phone="110", Address="0110100"},
             new User(){ ID="11", Name="11", Sex="男" ,Phone="110", Address="0110100"},
             new User(){ ID="12", Name="12", Sex="男" ,Phone="110", Address="0110100"},
             new User(){ ID="13", Name="13", Sex="男" ,Phone="110", Address="0110100"},
             new User(){ ID="14", Name="14", Sex="男" ,Phone="110", Address="0110100"},
             new User(){ ID="15", Name="15", Sex="男" ,Phone="110", Address="0110100"},
             new User(){ ID="16", Name="16", Sex="男" ,Phone="110", Address="0110100"},
             new User(){ ID="17", Name="17", Sex="男" ,Phone="110", Address="0110100"}, 
 } 
      /// <summary>
      /// 定义实体
     /// </summary>
     public class User  
    {
         public string ID { get; set; }
         public string Name { get; set; }
         public string Sex { get; set; }
         public string Phone { get; set; }
         public string Address { get; set; }
     }  

页面代码:

@model PagedList<MvcApplication.Controllers.User>
<h2>Index</h2>
<style type="text/css">
.table
{
    width: 99%;
    margin-left: 0.5%;
    border-spacing: 1px;
    text-align: center;
    border: 1px solid #d9dadb;
}
.table th
{
    color: #fff;
    background-color:#77DDFF;
    height: 29px;
    font-weight: normal;
    white-space: nowrap;
}
.table td { height: 29px; }
.table tr.odd { background-color: #fff; }
.table tr.even { background-color: #CCEEFF; }
.table tr.h { background-color: #e0e3e5; }
.table td a { text-decoration: none; }
</style>
<div id="pageList">
    <table class="table">
    <tr>
        <th>ID</th>
        <th>Name</th>
        <th>Sex</th>
        <th>phone</th>
        <th>Address</th>
    </tr>
    @{
        bool flag = false;
        foreach (MvcApplication.Controllers.User f in Model)
        {
         flag = !flag;
         <tr class="@(flag?"even":"odd")">
            <td>@f.ID</td>
            <td>@f.Name</td>
            <td>@f.Sex</td>
            <td>@f.Phone</td>
            <td>@f.Address</td>
        </tr>
        }
    }
</table>
<div class="pagerdiv">
    <div>
        共 @Model.TotalItemCount 条,页 @Model.CurrentPageIndex/ @Model.TotalPageCount
    </div>
    @Ajax.Pager(Model, new PagerOptions()
    {
        AutoHide = false,
        CssClass = "floatright",
        PageIndexParameterName = "id",
        ShowMorePagerItems = false,
        AlwaysShowFirstLastPageNumber = true,
        ShowPageIndexBox = true,
        PageIndexBoxWrapperFormatString = "页 {0}"
    }, new AjaxOptions()
    {
        UpdateTargetId = "pageList"
    })
</div>
</div>


 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MVC2 MvcPager分页源码 项目描述: MvcPager分页控件是在ASP.NET MVC Web应用程序中实现分页功能的一系列扩展方法,该分页控件的最初的实现方法借鉴了网上流行的部分源代码,尤其是ScottGu的PagedList类和相关方法,经过不断完善和改进后推出的比较成熟而且功能强大的ASP.NET MVC分页解决方案。 MvcPager主要功能有: 1.实现最基本的url route分页; 2.支持手工输入或选择页索引并对输入的页索引进行有效性验证; 3.支持使用ASP.NET MVC Ajax默认的MicrosoftAjax和MicrosoftMvcAjax客户端脚本库实 现Ajax分页; 4.支持使用jQuery实现Ajax分页,生成的Html代码更精简; 5.支持Ajax分页模式下,若客户端浏览器不支持或禁用Javascript功能时安全降级为普通 分页 6.搜索引擎友好,无论是普通分页还是Ajax分页,搜索引擎都可以直接搜索到所有页面。 7.支持ASP.NET MVC 1.0、2.0和3.0 版本; 8.支持IE、Firefox、Opera、Chrome及Safari等常用浏览器; What's new: 1、遵循xhtml标准(去除javascript标签的language属性); 2、添加PagerOptions.MaxPageIndex属性,允许限制显示的总页数; 3、修正了PageIndexParameterName区分大小写的bug; 4、允许部分受信任的调用方访问MvcPager; 5、unobtrusive Ajax支持(仅限ASP.NET MVC 3); 6、修正了jQuery Ajax分页时生成的url中重复出现x-requested-width=的bug; 7、增加IPagedList 接口,HtmlHelper.Pager、HtmlHelper.AjaxPager和Ajax.Pager扩展方法第一个参数改为IPagedList,不再是PagedList; 8、修正了页索引文本或下拉框跳转脚本针对不同浏览器的兼容问题; 9、代码精简优化; 1.5版完全兼容1.4版,升级时无需改动任何代码。 分页源码在src_51aspx文件夹中,代码如果需要商用请浏览作者个人控件,有详细说明。 数据库需要SQL2008 R2的支持!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值