分页

SQL:

select * from(
select *,row_number()over(order by id) as num from T_userInfo) as t
where t.num >=1 and t.num <=4

数据层(UserInfoDal):

        /// <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 UserInfo) as t where t.num>=@start and t.num<=@end";
SqlParameter[] pars = {
new SqlParameter("@start",SqlDbType.Int),
new SqlParameter("@end",SqlDbType.Int)
};
pars[].Value = start;
pars[].Value = end;
DataTable da=SqlHelper.GetDataTable(sql, CommandType.Text, pars);
List<UserInfo> list = null;
if (da.Rows.Count > )
{
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));
}

业务层(UserInfoService):

       /// <summary>
/// 计算获取数据的访问,完成分页
/// </summary>
/// <param name="pageIndex">当前页码</param>
/// <param name="pageSize">每页显示的记录数据</param>
/// <returns></returns>
public List<UserInfo> GetPageList(int pageIndex,int pageSize)
{
int start=(pageIndex-)*pageSize+;
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;
}

SqlHelper 添加ExecuteScalar方法(返回第一行第一列):

 public static object ExecuteScalar(string sql, CommandType type, params SqlParameter[] pars)
{
using (SqlConnection conn = new SqlConnection(connStr))
{
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
if (pars != null)
{
cmd.Parameters.AddRange(pars);
}
cmd.CommandType = type;
conn.Open();
return cmd.ExecuteScalar();
}
}
}

UI层(首页/前页/下页/尾页):

<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%>页
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 StrHtml { get; set; }
public int PageIndex { get; set; }
public int PageCount { get; set; }
protected void Page_Load(object sender, EventArgs e)
{
int pageSize=;
int pageIndex;
if(!int.TryParse(Request.QueryString["pageIndex"],out pageIndex))
{
pageIndex=;
}
BLL.UserInfoService UserInfoService = new BLL.UserInfoService();
int pagecount = UserInfoService.GetPageCount(pageSize);//获取总页数
PageCount = pagecount;
//对当前页码值范围进行判断
pageIndex = pageIndex < ? : pageIndex;
pageIndex = pageIndex > pagecount ? pagecount : pageIndex;
PageIndex = pageIndex;
List<UserInfo>list= UserInfoService.GetPageList(pageIndex,pageSize);//获取分页数据
StringBuilder sb = new StringBuilder();
foreach (UserInfo userInfo in list)
{
sb.AppendFormat("<li><span>{0}</span><a href='#' target='_blank'>{1}</a></li>",userInfo.RegTime.ToShortDateString(),userInfo.UserName);
}
StrHtml = sb.ToString();
}
}
}

asp.net 7.分页的更多相关文章

  1. ASP.NET MVC分页组件MvcPager 2.0版发布暨网站全新改版

    MvcPager分页控件是在ASP.NET MVC Web应用程序中实现分页功能的一系列扩展方法,该分页控件的最初的实现方法借鉴了网上流行的部分源代码, 尤其是ScottGu的PagedList< ...

  2. ASP.NET MVC分页实现之改进版-增加同一个视图可设置多个分页

    我之前就已经实现了ASP.NET MVC分页(查看该博文),但它有局限性,必须确保在同一个视图中只能有一处分页,若需要在同一个视图中设置多个分页,却无能为力,为此,我重新对原先的代码进行了优化,增加了 ...

  3. 基于Bootstrap的Asp.net Mvc 分页

    基于Bootstrap的Asp.net Mvc 分页的实现 最近写了一个mvc 的 分页,样式是基于 bootstrap 的 ,提供查询条件,不过可以自己写样式根据个人的喜好,以此分享一下.首先新建一 ...

  4. [Asp.net]AspNetPager分页组件

    引言 在基于Asp.net的内网系统中,分页功能是最常用的,用的最多的组件就是AspNetPager. AspNetPager 官网:http://www.webdiyer.com/aspnetpag ...

  5. Asp.Net真分页技术

    最近学校要做课题,闲来没事研究了下Asp.net的分页,我使用Repeater进行数据的绑定,每次从数据库读取到8条数据填充到Repeater中,这样搞可以降低数据库的压力,提高效率. 效果图如下: ...

  6. Asp.net+JS 分页

    function pagestart() {//初始化页面,获取公司新闻 $("#pagediv").hide(); $("); var pagesize = $(&qu ...

  7. cPage分页,asp.net自定义分页,url传值分页,支持datalist、gridview、Repeater等

    asp.net分页是最最常用的功能,实现方式也很多,使用不同的控件有不同的分页方式. 下面分享一个我们团队内部使用了多年的一个分页控件cPage,是自己设计编写,没有冗余,简单.快速. cPage,现 ...

  8. PagedDataSource、Repeater以及AspNetPager在ASP.NET上分页。

    一.前台使用服务器标签 1.1使用Repeater控件 <asp:Repeater ID="Repeater1" runat="server"> & ...

  9. ASP.NET MVC分页实现

    ASP.NET MVC中不能使用分页控件,所以我就自己写了一个分页局部视图,配合PageInfo类,即可实现在任何页面任意位置呈现分页,由于采用的是基于POST分页方式,所以唯一的限制就是必须放在FO ...

  10. asp.net中分页与存储过程的一些总结

    一.接上文,使用的是jquery AJAX 进行分页 分页存储过程代码如下: ALTER PROCEDURE [dbo].[USP_GetAlbumByPage] @pageIndex int,--当 ...

随机推荐

  1. Linux设备驱动程序 之 模块参数

    模块支持参数的方法 内核允许驱动程序指定参数,这些参数可在运行insmod或者modprobe命令装载模块时赋值,modprobe还可以从它的配置文件(/etc/modporb.conf)中读取参数值 ...

  2. Python 生成随机数函数和加密函数(MD5)

    内容来自debugtalk import hashlib import random import string def gen_random_string(str_len): '''生成指定长度的随 ...

  3. mongodb的更新操作符

    mongodb更新有两个命令:1).update()命令 db.collection.update( criteria, objNew, upsert, multi ) criteria : upda ...

  4. Java并发包同步工具之Exchanger

    前言 承接上文Java并发包同步工具之Phaser,讲述了同步工具Phaser之后,搬家博客到博客园了,接着未完成的Java并发包源码探索,接下来是Java并发包提供的最后一个同步工具Exchange ...

  5. 让matlab在出错时停在debug内,并留下相关变量

    很多时候,我们写的matlab代码会在执行的过程中发生错误.这种情况下,matlab会 直接跳出执行,顺带告诉你是在代码的那一行跳出了,但是却无法留下出错时的每个变量 的具体值,给debug带来很大的 ...

  6. jar/war文件的解释

    http://blog.csdn.net/tang_123_/article/details/6012202#comments

  7. Qt编写自定义控件13-多态进度条

    前言 多态进度条,顾名思义,有多重状态,其实本控件主要是用来表示百分比进度的,由于之前已经存在了百分比进度条控件,名字被霸占了,按照先来先得原则,只好另外取个别名叫做多态进度条,应用场景是,某种任务有 ...

  8. 建立Maven工程时出错,Failure to transfer

    建立Maven工程时出错,Failure to transfer com.thoughtworks.xstream:xstream:jar:1.3.1 Failure to transfer com. ...

  9. 安装php的sphinx扩展模块

    转自 http://blog.csdn.net/fenglailea/article/details/38115821 首先你必须已经安装过了sphinx 如何安装sphinx请看:http://bl ...

  10. Trie代码学习

    感觉不把这个Trie理解一下,AC自动机的代码看起来有点费劲. 这里代码的学习仿照训练指南209页. 这里如果只是查询单词,感觉用map更好,但是如果查前缀,还是用Trie. 1.Trie查询前缀字符 ...