简单的ASP.NET无刷新分页
1、新建一个分页存储过程:
- CREATE procedure [dbo].[P_Pager]
- (@PageNumber int,
- @PageSize int)
- as
- declare @sql nvarchar(4000)
- 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'
- exec sp_executesql @sql
- GO
2、设置Ajax控件
想要实现无刷新,肯定会用到Ajax,首先是要放入必不可少的:
- <asp:ScriptManager ID="ScriptManager1" runat="server">
- </asp:ScriptManager>
接着把Repeater控件嵌入到UpdatePanel里面去:
- <asp:UpdatePanel ID="UpdatePanel1" runat="server">
- <ContentTemplate>
- <ul>
- <asp:Repeater ID="Repeater1" runat="server">
- <ItemTemplate>
- <li>
- <p>
- <span><%#Eval("username") %>:</span><%#Eval("content").ToString())) %></p>
- <p>
- <em>发表时间:
- <%#Eval("addtime") %>
- </em>
- </p>
- </li>
- </ItemTemplate>
- </asp:Repeater>
- </ul>
- <p>
- 总记录:<asp:Literal ID="ltlCount" runat="server"></asp:Literal></p>
- <p>
- <webdiyer:AspNetPager ID="AspNetPager1" runat="server" AlwaysShow="true" PageIndexBoxType="DropDownList" >
- </webdiyer:AspNetPager>
- </p>
- </div>
- </ContentTemplate>
- </asp:UpdatePanel>
3、AspNetPager分页控件
可以看到以上的代码有个分页控件,我相信这个分页控件大家都不陌生了,我就不多介绍。必须有AspNetPager.dll,然后在项目中引用,在头部引入这一段代码:
- <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdiyer" TagPrefix="webdiyer" %>
这时候分页控件应该就可以使用了。最后在后台绑定一下数据,同时也要绑定AspNetPager控件,完整的后台代码如下:
- using System;
- using System.Collections.Generic;
- using System.Web;
- using System.Web.UI;
- using System.Web.UI.WebControls;
- using System.Data;
- using Wuqi.Webdiyer;
- using System.Data.SqlClient;
- public partial class AjaxPager : System.Web.UI.Page
- {
- int currentPageNumber;//当前页号
- int pageSize = 5;//每页显示记录条数
- protected void Page_Load(object sender, EventArgs e)
- {
- if (!IsPostBack)
- {
- currentPageNumber = 1;
- ViewState["currentPageNumber"] = currentPageNumber;
- BindData();
- }
- AspNetPager1.PageChanged += new EventHandler(AspNetPager1_PageChanged); //定义控件分页事件
- }
- //获取记录总数
- private int GetCount()
- {
- string sql = "select COUNT(*) from T_Test";
- DataTable dt = GetTable(sql, CommandType.Text, values);
- if (dt.Rows.Count > 0)
- {
- return Convert.ToInt32(dt.Rows[0][0]);
- }
- else
- {
- return 0;
- }
- }
- //绑定数据
- private void BindData()
- {
- ltlCount.Text = GetCount().ToString();
- currentPageNumber = Convert.ToInt32(ViewState["currentPageNumber"]);
- SqlParameter[] values = { new SqlParameter("@PageNumber", currentPageNumber), new SqlParameter("@PageSize", pageSize) };
- DataTable dt = GetTable("P_Pager", CommandType.StoredProcedure, values); //调用存储过程
- if (dt.Rows.Count > 0)
- {
- AspNetPager1.PageSize = pageSize;
- AspNetPager1.RecordCount = GetCount();
- AspNetPager1.CurrentPageIndex = currentPageNumber;
- this.Repeater1.DataSource = dt.DefaultView;
- this.Repeater1.DataBind();
- }
- }
- //分页事件
- void AspNetPager1_PageChanged(object sender, EventArgs e)
- {
- currentPageNumber = AspNetPager1.CurrentPageIndex;
- ViewState["currentPageNumber"] = currentPageNumber;
- BindData();
- }
- // 读取存储过程返回table
- private DataTable GetTable(string sql, CommandType t, params SqlParameter[] values)
- {
- using (SqlConnection conn = new SqlConnection("Data Source=127.0.0.1;Initial Catalog=testDB;Persist Security Info=True;User ID=sa;Password=123456"))
- {
- SqlCommand comm = new SqlCommand(sql, conn);
- comm.CommandType = t;
- if (values != null && values.Length > 0)
- comm.Parameters.AddRange(values);
- SqlDataAdapter da = new SqlDataAdapter(comm);
- DataSet ds = new DataSet();
- try
- {
- conn.Open();
- da.Fill(ds);
- return ds.Tables[0];
- }
- catch (Exception)
- {
- return null;
- }
- finally
- {
- conn.Close();
- conn.Dispose();
- }
- }
- }
- }
转载于:https://www.cnblogs.com/nianyuwen/archive/2012/06/29/2570537.html
简单的ASP.NET无刷新分页相关推荐
- Asp.Net无刷新分页( jquery.pagination.js)
采用Jquery无刷新分页插件jquery.pagination.js 实现无刷新分页效果 友情提示:本示例Handler中采用StringBuilder的append方法追加HTML,小数据量可 ...
- Ajax+Asp.Net无刷新分页
1.新建解决方案,并建立四个项目BLL,DAL,Model,PagerTest,如图所示: 2.Model代码 using System; using System.Collections.Gener ...
- 一起谈.NET技术,ASP.NET MVC2.0在Tab页中实现异步无刷新分页
概述 很多地方都存在以Tab页来呈现数据的方式,比如网易.新浪.搜狐.QQ等知名的门户网站的首页,还有大家熟知的博客园首页,都是用了tab页来显示数据.大家之所以喜欢用Tab,因为它能大大的增加显示数 ...
- smarty+php+ajax 简单无刷新分页
简介 分页,无非就是从数据库中获得我们想查询的数据,再加以处理即可! ① 确定数据总数($count) ② 每页显示数据条数($pageSize) ③ 分多少页($pageCount) ④ 上一页($ ...
- java ajax无刷分页_简单实现Ajax无刷新分页效果
Ajax无刷新分页效果,如下代码实现 Ajax无刷新分页效果 function showpage(url) { var xhr = new XMLHttpRequest(); xhr.onreadys ...
- 一步步打造漂亮的新闻列表(无刷新分页、内容预览)(4)
前面三篇文章实现了第一个目标,即无刷新分页.本文将实现第二个目标,即预览新闻内容.有两种方法可以实现内容的预览,一个是ajax,一个是伪ajax(姑且这么叫). 我们先用伪ajax实现新闻内容的预览. ...
- thinkphp+ajax无刷新分页并加载显示图片
2019独角兽企业重金招聘Python工程师标准>>> 最近自己用thinkphp和bootstrap做一个小站点,在用到ajax与后台数据库交互实现无刷新分页时,因为我需要返回的数 ...
- Repeater无刷新分页
网上摘录 前台: <html xmlns="http://www.w3.org/1999/xhtml"> <head id="Head1" ...
- 无刷新分页 jquery.pagination.js
序言 这一款js分页使用起来很爽,自己经常用,做项目时总是要翻以前的项目看,不方便,这里就把他写出来方便自己以后粘帖,也希望能分享给大家. 友情提示下:我有一片博客是用着个js实现的无刷新分页也很好用 ...
最新文章
- centos 7 学习笔记(一)
- [Linux] 使用openssl实现RSA非对称加密
- 单点登录Redis存储Session及SessionId问题说明与集群实战-2
- mongodb java 多条件查询_MongoDB_Java连接mongo 使用Java多条件查询mongo数据
- python 冒泡排序 时间复杂度
- Mysql之查询优化器 EXPLAIN 详解
- 利用SusuCMS快速创建网站(一)
- 山东大学计算机图形学实验(Opengl实现):Loop Subdivision算法对模型进行细分
- NYOJ456andNYOJ325
- idea打包jar 有的依赖包没有被打包
- 最新服务器处理器天梯,至强cpu天梯图2020_intel服务器cpu排行榜2020
- 公众号搜题接口API
- redis发布/订阅模式
- 19、弱电工程综合布线报价多少钱一个点位?弱电入门学习
- Android让APP运行在新环境上,Android Studio环境在真手机运行app项目教程
- 两小时带你进入软件测试行业风口(附全套软件测试学习路线)
- 富士施乐248b粉盒清零_富士施乐打印机换墨粉后怎么复位清零
- 【Unity3D】游戏物体操作 ① ( 场景简介 | 添加游戏物体 | 操作游戏物体 | 选中游戏物体 | 场景显示效果缩放 | 重命名游戏物体 | 复制游戏物体 | 删除游戏物体 | 移动物体 )
- 市场调研计划书如何写?
- tuneup utilities 2012怎么用?全是英文 怎么使用?
热门文章
- javascript --- 尾递归优化的实现
- LeetCode算法题-Jewels and Stones(Java实现)
- 顶级数据库行会Percona阿里全面解析下一代云数据库技术
- javascript调试常用工具讲解
- sama5d3 环境检测 gpio--yk测试
- iOS.UITableView.SectionIndex
- 我们买得起nook,kindle fire可我们买不起书啊
- CCIR601和CCIR656标准的区别
- [独家]网易遭遇****** 留下“装B”两字
- 随心所欲的Web页面打印技术