分页公共类

PageBarHelper

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CZBK.ItcastProject.Common
{
    public class PageBarHelper
    {
        public static string GetPageaBar(int pageIndex, int pageCount)
        {
            if (pageCount==1)
            {
                return string.Empty;
            }
            int star = pageIndex - 5;//计算起始位置,要求页面上显示10个数字页码。
            if (star<1)
            {
                star = 1;
            }
            int end = star + 9;//计算终止位置
            if (end>pageCount)
            {
                end = pageCount;
                //重新计算一下star的值
                star = end - 9 < 1 ? 1 : end - 9;
            }
            StringBuilder sb = new StringBuilder();
            if (pageIndex > 1)
            {
                sb.AppendFormat("<a href=‘NewList.aspx?pageIndex={0}‘>上一页</a>", pageIndex - 1);
            }
            for (int i = star; i <= end; i++)
            {
                if (i==pageIndex)
                {
                    sb.Append(i);
                }
                else
                {
                    sb.AppendFormat("<a href=‘NewList.aspx?pageIndex={0}‘>{0}</a>",i);
                }
            }
            if (pageIndex < pageCount)
            {
                sb.AppendFormat("<a href=‘NewList.aspx?pageIndex={0}‘>下一页</a>", pageIndex + 1);
            }
            return sb.ToString();
        }
    }
}

页面引入样式pageBarStyle.css

.page_nav{clear:both; padding:15px 0; color:#666; font:normal 12px/24px Arial; text-align:center;}
.page_nav a{display:inline-block; height:22px; margin:0 2px; padding:0 8px; text-decoration:none; border:solid 1px #dbe5ee; -moz-border-radius:2px; -webkit-border-radius:2px; -khtml-border-radius:2px; border-radius:2px; background:#fff; color:#333; font:normal 12px/22px Arial, Helvetica, sans-serif; cursor:pointer;}
.page_nav strong{display:inline-block; height:24px; margin:0 3px; padding:0 8px; border:none; -moz-border-radius:2px; -webkit-border-radius:2px; -khtml-border-radius:2px; border-radius:2px; background:#C00; color:#fff; font-weight:normal; line-height:24px; text-decoration:none;}
.page_nav a:hover,
.page_nav a.on{height:24px; margin:0 3px; border:none; background:#C00; color:#fff; line-height:24px; text-decoration:none;}
.page_nav a.select{cursor:default;}
.page_nav .view_all{display:block; text-align:center;}
.page_nav .view_all a{height:auto; margin:0; padding:0; border:none; color:#06c; line-height:24px;}
.page_nav .view_all a:hover{height:auto; margin:0; padding:0; background:none;}

后台代码

using CZBK.ItcastProject.Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace CZBK.ItcastProject.WebApp._2015_5_30
{
    public partial class NewList : System.Web.UI.Page
    {
        public string StrHtnl { get; set; }
        public int pageIndex { get; set; }
        public int pageCount { get; set; }
        protected void Page_Load(object sender, EventArgs e)
        {
            int pageSize = 10;
            pageIndex = Convert.ToInt32(Request.QueryString["pageIndex"]) == 0 ? 1 : Convert.ToInt32(Request.QueryString["pageindex"]);
            BLL.UserInfoService userinfoservice = new BLL.UserInfoService();
            pageCount = userinfoservice.GetPageCount(pageSize);//获取总页数
            pageIndex = pageIndex < 1 ? 1 : pageIndex;
            pageIndex = pageIndex > pageCount ? pageCount : pageIndex;
            List<UserInfo> list = userinfoservice.GetPageList(pageIndex, pageSize);//分页数据
            StringBuilder sb = new StringBuilder();
            foreach (UserInfo userinfo in list)
            {
                if (userinfo!=null)
                {
                    sb.AppendFormat("<li><span>{0}</span><a href=‘#‘>{1}</a></li>",userinfo.RegTime.ToShortDateString(),userinfo.UserName);
                }
            }
            StrHtnl = sb.ToString();
        }
    }
}

DAL层代码

/// <summary>
        /// 根据指定的范围,获取指定的数据
        /// </summary>
        /// <param name="start"></param>
        /// <param name="end"></param>
        /// <returns></returns>
        public List<UserInfo> GetPageList(int start,int end)
        {
            string sql = "SELECT * FROM (SELECT *,ROW_NUMBER() OVER (ORDER BY id) AS num FROM dbo.UserInfo) AS t WHERE t.num>= @start and num <[email protected]";
            SqlParameter[] pars ={
                                new SqlParameter("@start",SqlDbType.Int,4),
                                new SqlParameter("@end",SqlDbType.Int,4)
                                };
            pars[0].Value = start;
            pars[1].Value = end;
            DataTable da = new DataTable();
            da=SqlHelper.GetDataTable(sql, CommandType.Text, pars);
            List<UserInfo> list = null;
            if (da.Rows.Count > 0)
            {
                list = new List<UserInfo>();
                UserInfo userInfo = null;
                foreach (DataRow row in da.Rows)
                {
                    userInfo = new UserInfo();
                    LoadEntity(userInfo, row);
                    list.Add(userInfo);
                }
            }
            return list;
        }
        /// <summary>
        /// 获取总的记录数
        /// </summary>
        /// <returns></returns>
        public int GetRecordCount()
        {
            string sql = "select count(*) from UserInfo";
            return Convert.ToInt32(SqlHelper.ExecuteScalar(sql, CommandType.Text));
        }

BLL层代码

/// <summary>
        /// 计算获取数据的访问,完成分页
        /// </summary>
        /// <param name="pageIndex">当前页码</param>
        /// <param name="pageSize">每页显示的记录数据</param>
        /// <returns></returns>
        public List<UserInfo> GetPageList(int pageIndex, int pageSize)
        {
            int start = (pageIndex - 1) * pageSize + 1;
            int end = pageIndex * pageSize;
            return UserInfoDal.GetPageList(start, end);
        }
        /// <summary>
        /// 获取总的页数
        /// </summary>
        /// <param name="pageSize">每页显示的记录数</param>
        /// <returns></returns>
        public int GetPageCount(int pageSize)
        {
            int recoredCount = UserInfoDal.GetRecordCount();//获取总的记录数.
            int pageCount = Convert.ToInt32(Math.Ceiling((double)recoredCount / pageSize));
            return pageCount;
        }

Model层

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CZBK.ItcastProject.Model
{
    public class UserInfo
    {
        public int Id { get; set; }
        public string UserName { get; set; }
        public string UserPass { get; set; }
        public DateTime RegTime { get; set; }
        public string Email { get; set; }
    }
}

aspx页面部分,两种不同分页方式

<div class="pages"><a href="NewList.aspx?pageIndex=1">首页</a>  |  <a href="NewList.aspx?pageIndex=<%=pageIndex-1<1?1:pageIndex-1 %>">前页</a>  |  <a href="NewList.aspx?pageIndex=<%=pageIndex+1>pageCount?pageCount:pageIndex+1 %>">后页</a> | <a href="NewList.aspx?pageIndex=<%=pageCount %>">尾页</a>         页次:<%=pageIndex %>/<%=pageCount %>页 </div>
            <hr />
                <div class="page_nav">
                    <%=PageBarHelper.GetPageaBar(pageIndex,pageCount) %>
                </div>
时间: 2024-09-30 10:50:23

分页公共类的相关文章

Mybatis包分页查询java公共类

分页----对于数据量非常大的查询中.是不可缺少的. mybatis底层的分页sql语句因为须要我们自己去手动写.而实现分页显示的时候我们须要依据分页查询条件查询符合条件的总记录数和记录的具体情况.因此,若是不去实现封装一下的话,我们须要写两条SQL语句去实现它.一次用于查询记录数目.一次用于查询分页显示的具体记录. 当项目中碰到非常多须要分页的时候,我们便对于每个Mapper.xml文件都须要去写两条SQL语句. 极其麻烦.代码重用----必须重用.所以,一个公共方法的分页需求应运而生. 直接

ASP.NET中常用的几个李天平开源公共类LTP.Common,Maticsoft.DBUtility,LtpPageControl

ASP.NET中常用的几个开源公共类: LTP.Common.dll: 通用函数类库     源码下载Maticsoft.DBUtility.dll 数据访问类库组件     源码下载LtpPageControl.dll    Web分页控件   源码下载 本博客下载地址: LTP.Common.dll: 通用函数类库     源码下载Maticsoft.DBUtility.dll 数据访问类库组件     源码下载LtpPageControl.dll    Web分页控件   源码下载 来自:

C# 实现模拟登录功能,实现公共类分享。

前言 最近在研究模拟登录的各种方法, 主要想要实现的两个功能是: 1.点击按钮可以直接跳转并登录到某一个系统中. 2.抓取某一个系统中某一个页面中的特定数据. 为此在网上查了许多的资料,首先了解到自身对http协议基础知识的欠缺,初步了解后,明白想要实现模拟登录首先要学会抓包这一项基本的技能,关于抓包这里就不详细介绍了,向大家推荐一款软件fiddler,一款不错的抓包软件. 首先客户端向服务端请求无非两种类型get或post,所以我们要了解在登录某一个系统时post的地址,以及需要post的参数

C# 调用API接口处理公共类 自带JSON实体互转类

using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net; using System.Net.Security; using System.Security.Cryptography.X509Certificates; using System.Text; using System.Threading.Tasks; using System.Web; n

Android公共库——图片缓存 网络缓存 下拉及底部更多ListView 公共类

Android公共库--图片缓存 网络缓存 下拉及底部更多ListView 公共类 转载自http://www.trinea.cn/android/android-common-lib/ 介绍总结的一些android公共库,包含缓存(图片缓存.预取缓存.网络缓存).公共View(下拉及底部加载更多ListView.底部加载更多ScrollView.滑动一页Gallery).及Android常用工具类(网络.下载.shell.文件.json等等). TrineaAndroidCommon已开源,地

CodeSmith公共类维护

CodeSmith在使用过程中,我们经常会出现同一个方法在不同的页面调用,如果我们在每个页面都写一个这样的方法,那么代码量非常大,同时如果以后需要修改也要在每个页面分别去修改,这无疑是劳命伤财,如果能够有更好的方法那么又何乐而不为呢.下面提供两种方式: 方法一: 1.创建公共类comm.cs,类里面的内容如下: public string getData() { return "abc"; } 2.调用的cst文件内容如下: <%@ CodeTemplate Language=&

MVC 公共类App_Code不识别

.Net MVC需要写公共类的时候 右击添加 App_Code 文件夹,新建类—>右击类—>属性,生成操作 —>选择 —>编译 .net MVC项目本身是个应用程序,所以其实不需要专门起名为App_Code文件夹放入公共类,只要在项目下建类文件在那都可以,只要改成可编译的就行. 而最传统的asp.net文件系统App_Code文件夹是专门放类文件的,你放在其它地方反而不认,这两个的区别是项目的区别.

Java ClassLoader基础及加载不同依赖 Jar 中的公共类

转载自:最新内容及最清晰格式请见 http://www.trinea.cn/android/java-loader-common-class/ 本文主要介绍 ClassLoader 的基础知识,ClassLoader 如何动态加载 Jar,ClassLoader 隔离问题及如何加载不同 Jar 中的公共类. 本文工程开源地址见:Java Dynamic Load [email protected],Clone 以后直接以 Java Application去运行 java-dynamic-load

java判断一个类是否公共类

Modifier.isPublic([类].getModifiers()) Modifier.isAbstract([类].getModifiers()) java判断一个类是否公共类,布布扣,bubuko.com