Ajax+Asp.Net无刷新分页
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无刷新分页相关推荐
- 利用Ajax实现DataGrid无刷新分页(AjaxGrid)【转】
利用Ajax实现DataGrid无刷新分页(AjaxGrid) DataGrid功能强大,我们只用写几行代码就能够实现复杂的页面数据显示.数据多的时候免不了要分页显示,DataGrdi本身自带分页功能 ...
- Ajax+asp.net无刷新验证用户名的几种方法
Ajax+asp.net无刷新验证用户名 注册用户页面代码如下 <script language="javascript" type="text/javascrip ...
- Asp.Net无刷新分页( jquery.pagination.js)
采用Jquery无刷新分页插件jquery.pagination.js 实现无刷新分页效果 友情提示:本示例Handler中采用StringBuilder的append方法追加HTML,小数据量可 ...
- JavaWeb开发之Ajax省市联动无刷新分页
我们在上一节课已经和大家讲解过Ajax的使用,大家可以去看下该篇文章,今天也主要是一个拓展延伸,使用Ajax去完成无刷新省市联动和无刷新分页. 案列:使用Ajax完成无刷新分页 数据库数据 crea ...
- 简单的ASP.NET无刷新分页
1.新建一个分页存储过程: CREATE procedure [dbo].[P_Pager] (@PageNumber int, @PageSize int) as declare @sql nvar ...
- Ajax+asp.net无刷新验证用户名
注册用户页面代码如下 <script language="javascript" type="text/javascript"> var xmlHt ...
- 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 { ...
- 一起谈.NET技术,ASP.NET MVC2.0在Tab页中实现异步无刷新分页
概述 很多地方都存在以Tab页来呈现数据的方式,比如网易.新浪.搜狐.QQ等知名的门户网站的首页,还有大家熟知的博客园首页,都是用了tab页来显示数据.大家之所以喜欢用Tab,因为它能大大的增加显示数 ...
- .net MvcPager+Ajax无刷新分页
.net MvcPager+Ajax无刷新分页百度网盘链接: https://pan.baidu.com/s/1QmtBVH_sb4O6pNnEIsB5jw 1.新建Asp.net Web项目,重 ...
最新文章
- 大跌眼镜!杭州一程序员年薪 30 万,竟靠偷车厘子缓解压力?
- Visual Studio 2013 中如何设置断点
- Best Time to Buy and Sell Stock(动态规划)
- 5.4 Spring AOP
- linux信号值头文件位置,Linux C 信号处理机制
- 计算机网络系统是弱电工程,弱电工程包括哪些类型?常见的问题又有哪些?
- android学习笔记---61_Widgets,窗口小部件的制作...
- 走进软件测试面试(真题分析)
- hadoop的同类技术_Hadoop和Spark的区别是什么?现在都流行用哪种技术?
- 词频统计及其效能分析
- MySQL集群安装与配置
- 农场游戏开发记录十二
- 分享几个超好用的矢量图标网站
- 【工程师学算法】工程常用算法(二)—— 卡尔曼滤波(Kalman Filter)
- 转载:为某燃气公司做的一部卡通角色广告动画
- 苹果x微信为什么不出定位服务器,苹果x微信发动态为什么显示不了位置
- Nginx实现高可用
- phpoffice/phpword 表格合并和表格绝对居中
- sqlplus操作oracle
- 如何下载IEEE论文
热门文章
- java代码安全审计_《网络安全java代码审计实战》
- 牛!Mathematica还能这样用!自己制作马赛克拼图
- 超详细说明idea在方法上自动添加注释
- 4.2 Photoshop图像处理
- 科技爱好者周刊(第 129 期):创业的凸函数和凹函数
- x265-1.8版本-encoder/ratecontrol.cpp注释
- 计算机id是干什么的,宝马的最新车机系统ID7为什么牛逼?和现在有什么区别?...
- RDD断点回归-handbook
- 电子学:第012课——实验 13:烧烤 LED
- ns手柄pc驱动_PC和Switch通吃利器,北通宙斯精英手柄助你一臂之力!