1、新建解决方案,并建立四个项目BLL,DAL,Model,PagerTest,如图所示:

2、Model代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;namespace Model
{public class Person{/// <summary>/// 编号/// </summary>public int Id { get; set; }/// <summary>/// 名字/// </summary>public string Name { get; set; }}
}

View Code

3、DAL代码

SQlHelper.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;namespace DAL
{public class SQlHelper{/// <summary>/// 执行非查询/// </summary>/// <param name="connectionString">连接字符串</param>/// <param name="cmdType">命令类型</param>/// <param name="cmdText">命令的文本</param>/// <param name="commandParameters">命令的参数</param>/// <returns>返回影响的结果集行数</returns>public static int ExcuteNonQuery(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters){SqlCommand cmd = new SqlCommand();using (SqlConnection conn = new SqlConnection(connectionString)){PrePareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);int val = cmd.ExecuteNonQuery();cmd.Parameters.Clear();return val;}}/// <summary>/// 执行非查询/// </summary>/// <param name="connection">数据库连接</param>/// <param name="cmdType">命令的类型</param>/// <param name="cmdText">命令的文本</param>/// <param name="commandParameters">命令的参数</param>/// <returns>返回影响的结果集行数</returns>public static int ExcuteNonQuery(SqlConnection connection, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters){SqlCommand cmd = new SqlCommand();PrePareCommand(cmd, connection, null, cmdType, cmdText, commandParameters);int val = cmd.ExecuteNonQuery();cmd.Parameters.Clear();return val;}/// <summary>/// 执行非查询/// </summary>/// <param name="trans">事务</param>/// <param name="cmdType">命令的类型</param>/// <param name="cmdText">命令的文本</param>/// <param name="commandParameters">命令的参数</param>/// <returns>返回影响的结果集行数</returns>public static int ExcuteNonQuery(SqlTransaction tran, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters){SqlCommand cmd = new SqlCommand();PrePareCommand(cmd, tran.Connection, tran, cmdType, cmdText, commandParameters);int val = cmd.ExecuteNonQuery();cmd.Parameters.Clear();return val;}/// <summary>/// 执行查询/// </summary>/// <param name="connectionString">练级字符串</param>/// <param name="cmdType">命令的类型</param>/// <param name="cmdText">命令的文本</param>/// <param name="commandParameters">命令的参数数组</param>/// <returns>返回结果集</returns>public static SqlDataReader ExecuteReader(string connectionString, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters){SqlCommand cmd = new SqlCommand();SqlConnection conn = new SqlConnection(connectionString);try{PrePareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);cmd.Parameters.Clear();return sdr;}catch{conn.Close();throw;}}/// <summary>/// 执行查询/// </summary>/// <param name="connectionString">练级字符串</param>/// <param name="cmdType">命令的类型</param>/// <param name="cmdText">命令的文本</param>/// <param name="commandParameters">命令的参数数组</param>/// <returns>返回结果集</returns>public static SqlDataReader ExecuteReader(SqlTransaction trans, CommandType cmdType, string cmdText, params SqlParameter[] commandParameters){SqlCommand cmd = new SqlCommand();try{PrePareCommand(cmd, trans.Connection, trans, cmdType, cmdText, commandParameters);SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.Default);cmd.Parameters.Clear();return sdr;}catch{throw;}}/// <summary>/// 读取数据/// </summary>/// <param name="connectionString">数据库连接字符串</param>/// <param name="cmdType">数据命令类型</param>/// <param name="cmdText">数据命令的文本</param>/// <param name="cmd">需要被执行的数据命令</param>/// <param name="commandParameters">数据命令的参数</param>/// <returns>返回影响的结果集行数</returns>public static SqlDataReader ExecuteReader(string connectiongStr, CommandType cmdType, string cmdText, out SqlCommand cmd, params SqlParameter[] commandParameters){cmd = new SqlCommand();SqlConnection conn = new SqlConnection(connectiongStr);try{PrePareCommand(cmd, conn, null, cmdType, cmdText, commandParameters);SqlDataReader sdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);cmd.Parameters.Clear();return sdr;}catch{throw;}}/// <summary>/// 匹配参数/// </summary>/// <param name="cmd">需要被执行的数据命令</param>/// <param name="conn">数据库连接</param>/// <param name="trans">事务</param>/// <param name="cmdType">数据命令类型</param>/// <param name="cmdText">数据命令的文本</param>/// <param name="cmdParms">数据命令的参数</param>private static void PrePareCommand(SqlCommand cmd, SqlConnection conn, SqlTransaction trans, CommandType cmdType, string cmdText, SqlParameter[] cmdParms){if (conn.State != ConnectionState.Open){conn.Open();}cmd.Connection = conn;cmd.CommandText = cmdText;if (trans != null){cmd.Transaction = trans;}cmd.CommandType = cmdType;if (cmdParms != null){foreach (SqlParameter param in cmdParms){cmd.Parameters.Add(param);}}}}
}

View Code

PersonDAL.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Configuration;
using System.Data.SqlClient;
using System.Data;
using System.ComponentModel;namespace DAL
{public class PersonDAL{private static readonly string connStr = ConfigurationManager.ConnectionStrings["PagerTestConnectionString"].ToString();/// <summary>/// 获取总数/// </summary>/// <returns>返回一个总数</returns>public  int GetPersonCount(){int i = 0;using (SqlDataReader sdr = SQlHelper.ExecuteReader(connStr, CommandType.Text, "select * from Person", null)){while (sdr.Read()){i++;}sdr.Close();return i;}}/// <summary>/// 分页数据列表/// </summary>/// <param name="strGetFields">需要返回的列 </param>/// <param name="fldName">排序的字段名</param>/// <param name="PageSize">页尺寸</param>/// <param name="PageIndex">页码</param>/// <param name="doCount">返回记录总数, 非 0 值则返回</param>/// <param name="OrderType">设置排序类型, 非 0 值则降序</param>/// <param name="strWhere">查询条件 (注意: 不要加 where)</param>/// <returns></returns>public BindingList<Model.Person> Getlist(string strGetFields, string fldName, int PageSize, int PageIndex, int doCount, int OrderType, string strWhere){SqlParameter[] parameters = {new SqlParameter("@tblName", SqlDbType.VarChar, 500),new SqlParameter("@strGetFields", SqlDbType.VarChar, 1000),new SqlParameter("@fldName", SqlDbType.VarChar, 255),new SqlParameter("@PageSize", SqlDbType.Int),new SqlParameter("@PageIndex", SqlDbType.Int),new SqlParameter("@doCount", SqlDbType.Bit),new SqlParameter("@OrderType", SqlDbType.Bit),new SqlParameter("@strWhere", SqlDbType.VarChar,1500),};parameters[0].Value = "dbo.Person";parameters[1].Value = strGetFields;parameters[2].Value = fldName;parameters[3].Value = PageSize;parameters[4].Value = PageIndex;parameters[5].Value = doCount;parameters[6].Value = OrderType;parameters[7].Value = strWhere;SqlDataReader sdr=   SQlHelper.ExecuteReader(connStr, CommandType.StoredProcedure, "dbo.sp_Common_GetListByPage", parameters);BindingList<Model.Person> list = new BindingList<Model.Person>();while (sdr.Read()){list.Add(createRpCcInfoByReader(sdr));}return list;}/// <summary>/// 根据reader生成Person实体/// </summary>/// <param name="reader"></param>/// <returns></returns>private Model.Person createRpCcInfoByReader(SqlDataReader reader){Model.Person p = new Model.Person();p.Id = Convert.ToInt32(reader["Id"]); ;p.Name = Convert.ToString(reader["Name"]);return p;}}
}

View Code

4、BLL代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.SqlClient;
using System.ComponentModel;namespace BLL
{public class PersonBLL{/// <summary>/// 获取总数/// </summary>/// <returns>返回一个总数</returns>public  int GetPersonCount(){DAL.PersonDAL p = new DAL.PersonDAL();return p.GetPersonCount();}/// <summary>/// 分页数据列表/// </summary>/// <param name="strGetFields">需要返回的列 </param>/// <param name="fldName">排序的字段名</param>/// <param name="PageSize">页尺寸</param>/// <param name="PageIndex">页码</param>/// <param name="doCount">返回记录总数, 非 0 值则返回</param>/// <param name="OrderType">设置排序类型, 非 0 值则降序</param>/// <param name="strWhere">查询条件 (注意: 不要加 where)</param>/// <returns></returns>public BindingList<Model.Person> Getlist(string strGetFields, string fldName, int PageSize, int PageIndex, int doCount, int OrderType, string strWhere){DAL.PersonDAL p = new DAL.PersonDAL();return p.Getlist(strGetFields, fldName, PageSize, PageIndex, doCount, OrderType, strWhere);}}
}

View Code

5、PagerTest代码,

PagerHandler.ashx

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel;
using System.Text;namespace PagerTest.Handler
{/// <summary>/// PagerHandler 的摘要说明/// </summary>public class PagerHandler : IHttpHandler{public void ProcessRequest(HttpContext context){context.Response.ContentType = "text/plain";string str = string.Empty;//具体的页面数int pageIndex;int.TryParse(context.Request["pageIndex"], out pageIndex);//页面显示条数int size = Convert.ToInt32(context.Request["pageSize"]);if (pageIndex == 0){pageIndex = 1;}int count;BindingList<Model.Person> list = new BLL.PersonBLL().Getlist("*","Id",size, pageIndex, 0, 1,"");StringBuilder sb = new StringBuilder();foreach (Model.Person p in list){sb.Append("<tr><td>");sb.Append(p.Id.ToString());sb.Append("</td><td>");sb.Append(p.Name);sb.Append("</td></tr>");}str = sb.ToString();context.Response.Write(str);     }public bool IsReusable{get{return false;}}}
}

View Code

PageWeb.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PageWeb.aspx.cs" Inherits="PagerTest.PageWeb" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server"><title>无刷新翻页</title><script src="Scripts/jquery-1.4.1.js" type="text/javascript"></script><script src="Scripts/jquery.pagination.js" type="text/javascript"></script><link href="Style/pagination.css" rel="stylesheet" type="text/css" /><link href="Style/tablecloth.css" rel="stylesheet" type="text/css" /><script type="text/javascript">var pageIndex = 0;     //页面索引初始值var pageSize = 10;     //每页显示条数初始化,修改显示条数,修改这里即可
   $(function() {       InitTable(0);    //Load事件,初始化表格数据,页面索引为0(第一页)//分页,PageCount是总条目数,这是必选参数,其它参数都是可选
        $("#Pagination").pagination(<%=pageCount %>, {callback: PageCallback,prev_text: '上一页',       //上一页按钮里text
            next_text: '下一页',       //下一页按钮里text
            items_per_page: pageSize,  //显示条数
            num_display_entries: 1,    //连续分页主体部分分页条目数
            current_page: pageIndex,   //当前页索引
            num_edge_entries: 2        //两侧首尾分页条目数
        });//翻页调用function PageCallback(index, jq) {           InitTable(index);}//请求数据function InitTable(pageIndex) {                                $.ajax({ type: "POST",dataType: "text",url: 'Handler/PagerHandler.ashx',      //提交到一般处理程序请求数据
                data: "pageIndex=" + (pageIndex + 1) + "&pageSize=" + pageSize,          //提交两个参数:pageIndex(页面索引),pageSize(显示条数)
                success: function(data) {                                 $("#Result tr:gt(0)").remove();        //移除Id为Result的表格里的行,从第二行开始(这里根据页面布局不同页变)
                    $("#Result").append(data);             //将返回的数据追加到表格
                }});            }   });</script>
</head>
<body><div align="center"><h1>Posrchev----无刷新分页</h1>
</div>
<div id="container" >  <table id="Result" cellspacing="0" cellpadding="0">          <tr><th>编号</th><th>名称</th>                </tr>                                                                                                </table><div id="Pagination"></div>
</div>
</body>
</html>

View Code

PageWeb.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;namespace PagerTest
{public partial class PageWeb : System.Web.UI.Page{public string pageCount = string.Empty; //总条目数protected void Page_Load(object sender, EventArgs e){if (!IsPostBack){pageCount = new BLL.PersonBLL().GetPersonCount().ToString();}}}
}

View Code

运行效果:

备注:本例用了jquery.pagination.js

参数名

描述

参数值

maxentries

总条目数

必选参数,整数

items_per_page

每页显示的条目数

可选参数,默认是10

num_display_entries

连续分页主体部分显示的分页条目数

可选参数,默认是10

current_page

当前选中的页面

可选参数,默认是0,表示第1页

num_edge_entries

两侧显示的首尾分页的条目数

可选参数,默认是0

link_to

分页的链接

字符串,可选参数,默认是"#"

prev_text

“前一页”分页按钮上显示的文字

字符串参数,可选,默认是"Prev"

next_text

“下一页”分页按钮上显示的文字

字符串参数,可选,默认是"Next"

ellipse_text

省略的页数用什么文字表示

可选字符串参数,默认是"…"

prev_show_always

是否显示“前一页”分页按钮

布尔型,可选参数,默认为true,即显示“前一页”按钮

next_show_always

是否显示“下一页”分页按钮

布尔型,可选参数,默认为true,即显示“下一页”按钮

callback

回调函数

当点击链接的时候此函数被调用,此函数接受两个参数,新一页的id和pagination容器(一个DOM元素)。如果回调函数返回false,则pagination事件停止执行

Css 代码:

pagination.css

.pagination
{width:300px;margin:20px 0 20px 210px;
}.pagination a
{text-decoration:none;border: solid 1px #AAE;color: #15B;
}.pagination a, .pagination span
{display: block;float: left;padding: 0.3em 0.5em;margin-right: 5px;margin-bottom: 5px;min-width: 1em;text-align: center;
}.pagination .current
{background: #328aa4;color: #fff;border: solid 1px #AAE;
}.pagination .current.prev
{color: #999;width:40px;display:block;border-color: #999;background: #fff;
}.pagination .current.next
{color: #999;width:40px;display:block;border-color: #999;background: #fff;
}

View Code

tablecloth.css

body{margin:0;padding:0;background:#f1f1f1;font:70% Arial, Helvetica, sans-serif; color:#555;line-height:150%;text-align:left;
}h1{font-size:140%;margin:0 20px;line-height:80px;    color:White;background-color:#328aa4;
}#container{margin:0 auto;width:680px;background:#fff;padding-bottom:50px;
}
table, td{font:100% Arial, Helvetica, sans-serif;
}
table{width:100%;border-collapse:collapse;margin:1em 0;}
th, td{text-align:left;padding:.5em;border:1px solid #fff;}
th{background:#328aa4 url(tr_back.gif) repeat-x;color:#fff;}
td{background:#e5f1f4;}/* tablecloth styles */tr.even td{background:#e5f1f4;}
tr.odd td{background:#f8fbfc;}th.over, tr.even th.over, tr.odd th.over{background:#4a98af;}
th.down, tr.even th.down, tr.odd th.down{background:#bce774;}
th.selected, tr.even th.selected, tr.odd th.selected{}td.over, tr.even td.over, tr.odd td.over{background:#ecfbd4;}
td.down, tr.even td.down, tr.odd td.down{background:#bce774;color:#fff;}
td.selected, tr.even td.selected, tr.odd td.selected{background:#bce774;color:#555;}/* use this if you want to apply different styleing to empty table cells*/
td.empty, tr.odd td.empty, tr.even td.empty{background:#fff;}

View Code

转载于:https://www.cnblogs.com/haibing0107/p/5568609.html

Ajax+Asp.Net无刷新分页相关推荐

  1. 利用Ajax实现DataGrid无刷新分页(AjaxGrid)【转】

    利用Ajax实现DataGrid无刷新分页(AjaxGrid) DataGrid功能强大,我们只用写几行代码就能够实现复杂的页面数据显示.数据多的时候免不了要分页显示,DataGrdi本身自带分页功能 ...

  2. Ajax+asp.net无刷新验证用户名的几种方法

    Ajax+asp.net无刷新验证用户名 注册用户页面代码如下 <script language="javascript" type="text/javascrip ...

  3. Asp.Net无刷新分页( jquery.pagination.js)

    采用Jquery无刷新分页插件jquery.pagination.js 实现无刷新分页效果   友情提示:本示例Handler中采用StringBuilder的append方法追加HTML,小数据量可 ...

  4. JavaWeb开发之Ajax省市联动无刷新分页

    我们在上一节课已经和大家讲解过Ajax的使用,大家可以去看下该篇文章,今天也主要是一个拓展延伸,使用Ajax去完成无刷新省市联动和无刷新分页. 案列:使用Ajax完成无刷新分页  数据库数据 crea ...

  5. 简单的ASP.NET无刷新分页

    1.新建一个分页存储过程: CREATE procedure [dbo].[P_Pager] (@PageNumber int, @PageSize int) as declare @sql nvar ...

  6. Ajax+asp.net无刷新验证用户名

    注册用户页面代码如下 <script language="javascript" type="text/javascript"> var xmlHt ...

  7. php mysql ajax 分页_ajax+php+mysql无刷新分页代码(1/2)_PHP教程

    ajax+php+mysql无刷新分页代码 ajax+php教程+mysql教程无刷新分页代码 2 3 4投票结果 5 6 7 8 9 function getxmlhttpobject() 10 { ...

  8. 一起谈.NET技术,ASP.NET MVC2.0在Tab页中实现异步无刷新分页

    概述 很多地方都存在以Tab页来呈现数据的方式,比如网易.新浪.搜狐.QQ等知名的门户网站的首页,还有大家熟知的博客园首页,都是用了tab页来显示数据.大家之所以喜欢用Tab,因为它能大大的增加显示数 ...

  9. .net MvcPager+Ajax无刷新分页

    .net  MvcPager+Ajax无刷新分页百度网盘链接: https://pan.baidu.com/s/1QmtBVH_sb4O6pNnEIsB5jw 1.新建Asp.net  Web项目,重 ...

最新文章

  1. 大跌眼镜!杭州一程序员年薪 30 万,竟靠偷车厘子缓解压力?
  2. Visual Studio 2013 中如何设置断点
  3. Best Time to Buy and Sell Stock(动态规划)
  4. 5.4 Spring AOP
  5. linux信号值头文件位置,Linux C 信号处理机制
  6. 计算机网络系统是弱电工程,弱电工程包括哪些类型?常见的问题又有哪些?
  7. android学习笔记---61_Widgets,窗口小部件的制作...
  8. 走进软件测试面试(真题分析)
  9. hadoop的同类技术_Hadoop和Spark的区别是什么?现在都流行用哪种技术?
  10. 词频统计及其效能分析
  11. MySQL集群安装与配置
  12. 农场游戏开发记录十二
  13. 分享几个超好用的矢量图标网站
  14. 【工程师学算法】工程常用算法(二)—— 卡尔曼滤波(Kalman Filter)
  15. 转载:为某燃气公司做的一部卡通角色广告动画
  16. 苹果x微信为什么不出定位服务器,苹果x微信发动态为什么显示不了位置
  17. Nginx实现高可用
  18. phpoffice/phpword 表格合并和表格绝对居中
  19. sqlplus操作oracle
  20. 如何下载IEEE论文

热门文章

  1. java代码安全审计_《网络安全java代码审计实战》
  2. 牛!Mathematica还能这样用!自己制作马赛克拼图
  3. 超详细说明idea在方法上自动添加注释
  4. 4.2 Photoshop图像处理
  5. 科技爱好者周刊(第 129 期):创业的凸函数和凹函数
  6. x265-1.8版本-encoder/ratecontrol.cpp注释
  7. 计算机id是干什么的,宝马的最新车机系统ID7为什么牛逼?和现在有什么区别?...
  8. RDD断点回归-handbook
  9. 电子学:第012课——实验 13:烧烤 LED
  10. ns手柄pc驱动_PC和Switch通吃利器,北通宙斯精英手柄助你一臂之力!