1、新建一个分页存储过程:

  1. CREATE procedure [dbo].[P_Pager]
  2. (@PageNumber int,
  3. @PageSize int)
  4. as
  5. declare @sql nvarchar(4000)
  6. set @sql = 'select top ' + Convert(varchar, @PageSize)   + ' * from T_Test where [type]=1 and id not in (select top ' + Convert(varchar, (@PageNumber - 1) * @PageSize)  + ' id from T_Test order by id desc) order by id desc'
  7. exec sp_executesql @sql
  8. GO

 2、设置Ajax控件

想要实现无刷新,肯定会用到Ajax,首先是要放入必不可少的:

  1. <asp:ScriptManager ID="ScriptManager1" runat="server">
  2. </asp:ScriptManager>

接着把Repeater控件嵌入到UpdatePanel里面去:

  1. <asp:UpdatePanel ID="UpdatePanel1" runat="server">
  2. <ContentTemplate>
  3. <ul>
  4. <asp:Repeater ID="Repeater1" runat="server">
  5. <ItemTemplate>
  6. <li>
  7. <p>
  8. <span><%#Eval("username") %>:</span><%#Eval("content").ToString())) %></p>
  9. <p>
  10. <em>发表时间:
  11. <%#Eval("addtime") %>
  12. </em>
  13. </p>
  14. </li>
  15. </ItemTemplate>
  16. </asp:Repeater>
  17. </ul>
  18. <p>
  19. 总记录:<asp:Literal ID="ltlCount" runat="server"></asp:Literal></p>
  20. <p>
  21. <webdiyer:AspNetPager ID="AspNetPager1" runat="server" AlwaysShow="true" PageIndexBoxType="DropDownList" >
  22. </webdiyer:AspNetPager>
  23. </p>
  24. </div>
  25. </ContentTemplate>
  26. </asp:UpdatePanel>

3、AspNetPager分页控件

可以看到以上的代码有个分页控件,我相信这个分页控件大家都不陌生了,我就不多介绍。必须有AspNetPager.dll,然后在项目中引用,在头部引入这一段代码:

  1. <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>

这时候分页控件应该就可以使用了。最后在后台绑定一下数据,同时也要绑定AspNetPager控件,完整的后台代码如下:

  1. using System;
  2. using System.Collections.Generic;
  3. using System.Web;
  4. using System.Web.UI;
  5. using System.Web.UI.WebControls;
  6. using System.Data;
  7. using Wuqi.Webdiyer;
  8. using System.Data.SqlClient;
  9. public partial class AjaxPager : System.Web.UI.Page
  10. {
  11. int currentPageNumber;//当前页号
  12. int pageSize = 5;//每页显示记录条数
  13. protected void Page_Load(object sender, EventArgs e)
  14. {
  15. if (!IsPostBack)
  16. {
  17. currentPageNumber = 1;
  18. ViewState["currentPageNumber"] = currentPageNumber;
  19. BindData();
  20. }
  21. AspNetPager1.PageChanged += new EventHandler(AspNetPager1_PageChanged);  //定义控件分页事件
  22. }
  23. //获取记录总数
  24. private int GetCount()
  25. {
  26. string sql = "select COUNT(*) from T_Test";
  27. DataTable dt = GetTable(sql, CommandType.Text, values);
  28. if (dt.Rows.Count > 0)
  29. {
  30. return Convert.ToInt32(dt.Rows[0][0]);
  31. }
  32. else
  33. {
  34. return 0;
  35. }
  36. }
  37. //绑定数据
  38. private void BindData()
  39. {
  40. ltlCount.Text = GetCount().ToString();
  41. currentPageNumber = Convert.ToInt32(ViewState["currentPageNumber"]);
  42. SqlParameter[] values = { new SqlParameter("@PageNumber", currentPageNumber), new SqlParameter("@PageSize", pageSize) };
  43. DataTable dt = GetTable("P_Pager", CommandType.StoredProcedure, values);  //调用存储过程
  44. if (dt.Rows.Count > 0)
  45. {
  46. AspNetPager1.PageSize = pageSize;
  47. AspNetPager1.RecordCount = GetCount();
  48. AspNetPager1.CurrentPageIndex = currentPageNumber;
  49. this.Repeater1.DataSource = dt.DefaultView;
  50. this.Repeater1.DataBind();
  51. }
  52. }
  53. //分页事件
  54. void AspNetPager1_PageChanged(object sender, EventArgs e)
  55. {
  56. currentPageNumber = AspNetPager1.CurrentPageIndex;
  57. ViewState["currentPageNumber"] = currentPageNumber;
  58. BindData();
  59. }
  60. // 读取存储过程返回table
  61. private DataTable GetTable(string sql, CommandType t, params SqlParameter[] values)
  62. {
  63. using (SqlConnection conn = new SqlConnection("Data Source=127.0.0.1;Initial Catalog=testDB;Persist Security Info=True;User ID=sa;Password=123456"))
  64. {
  65. SqlCommand comm = new SqlCommand(sql, conn);
  66. comm.CommandType = t;
  67. if (values != null && values.Length > 0)
  68. comm.Parameters.AddRange(values);
  69. SqlDataAdapter da = new SqlDataAdapter(comm);
  70. DataSet ds = new DataSet();
  71. try
  72. {
  73. conn.Open();
  74. da.Fill(ds);
  75. return ds.Tables[0];
  76. }
  77. catch (Exception)
  78. {
  79. return null;
  80. }
  81. finally
  82. {
  83. conn.Close();
  84. conn.Dispose();
  85. }
  86. }
  87. }
  88. }

转载于:https://www.cnblogs.com/nianyuwen/archive/2012/06/29/2570537.html

简单的ASP.NET无刷新分页相关推荐

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

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

  2. Ajax+Asp.Net无刷新分页

    1.新建解决方案,并建立四个项目BLL,DAL,Model,PagerTest,如图所示: 2.Model代码 using System; using System.Collections.Gener ...

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

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

  4. smarty+php+ajax 简单无刷新分页

    简介 分页,无非就是从数据库中获得我们想查询的数据,再加以处理即可! ① 确定数据总数($count) ② 每页显示数据条数($pageSize) ③ 分多少页($pageCount) ④ 上一页($ ...

  5. java ajax无刷分页_简单实现Ajax无刷新分页效果

    Ajax无刷新分页效果,如下代码实现 Ajax无刷新分页效果 function showpage(url) { var xhr = new XMLHttpRequest(); xhr.onreadys ...

  6. 一步步打造漂亮的新闻列表(无刷新分页、内容预览)(4)

    前面三篇文章实现了第一个目标,即无刷新分页.本文将实现第二个目标,即预览新闻内容.有两种方法可以实现内容的预览,一个是ajax,一个是伪ajax(姑且这么叫). 我们先用伪ajax实现新闻内容的预览. ...

  7. thinkphp+ajax无刷新分页并加载显示图片

    2019独角兽企业重金招聘Python工程师标准>>> 最近自己用thinkphp和bootstrap做一个小站点,在用到ajax与后台数据库交互实现无刷新分页时,因为我需要返回的数 ...

  8. Repeater无刷新分页

    网上摘录 前台:  <html xmlns="http://www.w3.org/1999/xhtml">   <head id="Head1" ...

  9. 无刷新分页 jquery.pagination.js

    序言 这一款js分页使用起来很爽,自己经常用,做项目时总是要翻以前的项目看,不方便,这里就把他写出来方便自己以后粘帖,也希望能分享给大家. 友情提示下:我有一片博客是用着个js实现的无刷新分页也很好用 ...

最新文章

  1. centos 7 学习笔记(一)
  2. [Linux] 使用openssl实现RSA非对称加密
  3. 单点登录Redis存储Session及SessionId问题说明与集群实战-2
  4. mongodb java 多条件查询_MongoDB_Java连接mongo 使用Java多条件查询mongo数据
  5. python 冒泡排序 时间复杂度
  6. Mysql之查询优化器 EXPLAIN 详解
  7. 利用SusuCMS快速创建网站(一)
  8. 山东大学计算机图形学实验(Opengl实现):Loop Subdivision算法对模型进行细分
  9. NYOJ456andNYOJ325
  10. idea打包jar 有的依赖包没有被打包
  11. 最新服务器处理器天梯,至强cpu天梯图2020_intel服务器cpu排行榜2020
  12. 公众号搜题接口API
  13. redis发布/订阅模式
  14. 19、弱电工程综合布线报价多少钱一个点位?弱电入门学习
  15. Android让APP运行在新环境上,Android Studio环境在真手机运行app项目教程
  16. 两小时带你进入软件测试行业风口(附全套软件测试学习路线)
  17. 富士施乐248b粉盒清零_富士施乐打印机换墨粉后怎么复位清零
  18. 【Unity3D】游戏物体操作 ① ( 场景简介 | 添加游戏物体 | 操作游戏物体 | 选中游戏物体 | 场景显示效果缩放 | 重命名游戏物体 | 复制游戏物体 | 删除游戏物体 | 移动物体 )
  19. 市场调研计划书如何写?
  20. tuneup utilities 2012怎么用?全是英文 怎么使用?

热门文章

  1. javascript --- 尾递归优化的实现
  2. LeetCode算法题-Jewels and Stones(Java实现)
  3. 顶级数据库行会Percona阿里全面解析下一代云数据库技术
  4. javascript调试常用工具讲解
  5. sama5d3 环境检测 gpio--yk测试
  6. iOS.UITableView.SectionIndex
  7. 我们买得起nook,kindle fire可我们买不起书啊
  8. CCIR601和CCIR656标准的区别
  9. [独家]网易遭遇****** 留下“装B”两字
  10. 随心所欲的Web页面打印技术