非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();
        }
    }

  

posted @ 2017-06-21 20:12  o李一波o  阅读(193)  评论(0编辑  收藏  举报