• 非EF分页


    第一步:数据层

    写一个方法GetPageList()返回该表对应的所有数据模型集合List<Model.UserInfo>

    写一个方法GetRecordCount()通过SqlHelper.ExecuteScalar()获得所有的记录条数

    public List<Model.UserInfo> GetPageList(int pageStart, int pageEnd)
            {
                string sql = "select * from (select *,ROW_NUMBER() over(order by id) as num from UserInfo) as t where t.num>=@pageStart and t.num<=@pageEnd";
                SqlParameter[] pars = { 
                                      new SqlParameter("@pageStart",SqlDbType.Int){Value=pageStart},new SqlParameter("@pageEnd",SqlDbType.Int){Value=pageEnd}
                                      };
                DataTable dt = SqlHelper.GetDataTable(sql, CommandType.Text,pars);
                List<Model.UserInfo> list = null;
                if (dt.Rows.Count > 0)
                {
                    list = new List<Model.UserInfo>();
                    Model.UserInfo userInfo = null;
                    foreach (DataRow row in dt.Rows)
                    {
                        userInfo = new Model.UserInfo();
                        LoadEntity(userInfo, row);
                        list.Add(userInfo);
                    }
                }
                return list;
            }
    
            public int GetRecordCount()
            {
                string sql = "select count(*) from UserInfo";
                return Convert.ToInt32(SqlHelper.ExecuteScalar(sql, CommandType.Text));
            }
    

      

    第二步:业务层

    写一个方法GetPageList(int pageIndex,int pageSize),通过pageIndex和pageSize计算出pageStart和pageEnd,开始页和结束页,传给数据层

    写一个方法GetPageCount()通过传进了的每页显示多少条pageSize,和调用数据层GetRecordCount()方法得到的总条数,相除得到总页数

    public List<Model.UserInfo> GetPageList(int pageIndex, int pageSize)
            {
                int pageStart = (pageIndex - 1) * pageSize + 1;
                int pageEnd = pageIndex * pageSize;
                return UserInfoDal.GetPageList(pageStart, pageEnd);
            }
            public int GetPageCount(int pageSize)
            {
                int pageRecord = UserInfoDal.GetRecordCount();
                int pageCount = Convert.ToInt32(Math.Ceiling((double)pageRecord / pageSize));
                return pageCount;
            }
    

      第三步:UI层

    public ActionResult Index()
            {
    
                int pageIndex;
                if (!int.TryParse(Request["pageIndex"], out pageIndex)) {
                    pageIndex = 1;
                } 
                ViewBag.pageIndex = pageIndex;
                int pageSize = 2;
                int pageCount = UserInfoService.GetPageCount(pageSize);
                ViewBag.pageCount = pageCount;
                pageIndex = pageIndex < 1 ? 1 : pageIndex;
                pageIndex = pageIndex > pageCount ? pageCount : pageIndex;
                List<Model.UserInfo> list = UserInfoService.GetPageList(pageIndex, pageSize);
                StringBuilder sb = new StringBuilder();
                foreach (Model.UserInfo userInfo in list)
                {
                    sb.AppendFormat("<li><span>{0}</span><a>{1}</a></li>",userInfo.UName,userInfo.SubTime.ToShortDateString());
                }
                ViewBag.UserInfoList = sb.ToString();
                return View();
            }
    

      第四步:Common层 -> PageBarHelper

    public class PageBarHelper
        {
            public static string GetPageBar(int pageIndex, int pageCount)
            {
                if (pageCount == 1) return string.Empty;
                int startPage = pageIndex - 5;
                startPage = startPage < 1 ? 1 : startPage;
                int endPage = startPage + 9;
                if (endPage > pageCount)
                {
                    endPage = pageCount;
                    startPage = endPage - 9 < 1 ? 1 : endPage - 9;
                }
                StringBuilder sb = new StringBuilder();
                if (pageIndex!=1)
                {
                    sb.AppendFormat("<a href='/UserInfo/Index?pageIndex={0}'>首页</a>", 1);
                }
                if (pageIndex > 1)
                {
                    sb.AppendFormat("<a href='/UserInfo/Index?pageIndex={0}'>上一页</a>", pageIndex - 1);
                }
                for (int i = startPage; i <= endPage; i++)
                {
                    if (i == pageIndex)
                    {
                        sb.Append(i);
                    }
                    else
                    {
                        sb.AppendFormat("<a href='/UserInfo/Index?pageIndex={0}'>{0}</a>", i);
                    }
                }
                if (pageIndex < pageCount)
                {
                    sb.AppendFormat("<a href='/UserInfo/Index?pageIndex={0}'>下一页</a>", pageIndex + 1);
                }
                if (pageIndex != pageCount)
                {
                    sb.AppendFormat("<a href='/UserInfo/Index?pageIndex={0}'>尾页</a>", pageCount);
                }
                return sb.ToString();
            }
        }
    

      

  • 相关阅读:
    兼容性问题
    【浏览器渲染原理】 渲染树和页面渲染
    leetcode153. 寻找旋转排序数组中的最小值
    leetcode162. 寻找峰值
    各种常量池
    leetcode137. 只出现一次的数字 II
    leetcode136. 只出现一次的数字
    leetcode133. 克隆图
    ClassLoader分类
    overload和override
  • 原文地址:https://www.cnblogs.com/BOSET/p/7061509.html
Copyright © 2020-2023  润新知