佛山软件定制

分页存储过程,ASP.NET MVC中的Linq分页

分页存储过程 
Code
 

广告:http://www.cnyolee.com/(讲述有理的网站)
      http://www.rsion.com/

在ASP.NET MVC中分页

复制代码
 public ActionResult CateList(string page)
        
{
            
//分页大小
            int pageSize = 15;
            
//总页数
            int recordCount = (int)Helper.DataControl.FactoryCommand("select count(0) from articles where",CommandType.Text).ExecuteScalar();
            
int pageCount = recordCount / pageSize + (recordCount % pageSize == 0 ? 0 : 1);

            
//当前页数
            int currentPage = page == null ? 0 :Convert.ToInt32(page);
            
if (currentPage <1) currentPage = 1;
            
else if (currentPage > pageCount) currentPage = pageCount;
            
//分页信息
            TempData["pagedInfo"= "<a href=\"" + Request.Path + "?page=" + (currentPage == 1 ? 1 : currentPage - 1) +
                "\">上一页</a> | <a href=\"" + Request.Path + "?page=" + (currentPage == pageCount ? pageCount : currentPage + 1+
                
"\">下一页</a> <input type=\"text\" size=\"3\" id=\"tbpage\"> <a href=\"#\" onclick=\"location.href='" + Request.Path +
                
"?page='+tbpage.value;\">跳页</a> "+
                
                
"" + (currentPage) + "页/共" + pageCount + "页&nbsp;每页" + pageSize +
                
"条记录/共" + recordCount + "条!";

            
//计算要跳过的页
            int skipCount =recordCount<=pageSize?0:pageSize * (currentPage -1);

            IEnumerable
<Models.Article> articles = Common.DataContext.Articles.Skip(skipCount).Take(pageSize).OrderByDescending(a=>a.AddDate);
      
//注意:要先使用Skip(int)后再使用Take(int)
            return View(articles);
        }
复制代码

 

posted on   New.min  阅读(954)  评论(2编辑  收藏  举报

编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述

导航

点击右上角即可分享
微信分享提示