项目中经常会用到分页的功能类似的项目做过无数个了,今个把自己常用的分页代码分享一下。

首先说说服务端处理的代码:

下面代码中重点是分页的sql语句的写法,其中的参数@n是当前的页码,总的来说本服务端主要向前台输出了2个值,接收了一个参数(当前页码),输出的是总的页数和当前页码下的数据。

sql = "select t.* from (select *,ROW_NUMBER() over(order by id asc) rownum from eazy_yiliaofuwu where typeid='"+id+"')t where t.rownum>=(@n-1)*10+1 and t.rownum<=@n*10";
DataTable dt = DbHelperSQL.Query(sql, new SqlParameter("@n", pagenum)).Tables[0];

namespace EazyCMS.Web.tools
{
/// <summary>
/// getyaopinfuwu 的摘要说明
/// </summary>
public class getyaopinfuwu : IHttpHandler
{
private string sql = string.Empty; private int total = ; public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
string id = context.Request["id"];
int pagenum = Convert.ToInt32(context.Request["pagenum"]); sql = "select t.* from (select *,ROW_NUMBER() over(order by id asc) rownum from eazy_yiliaofuwu where typeid='"+id+"')t where t.rownum>=(@n-1)*10+1 and t.rownum<=@n*10";
DataTable dt = DbHelperSQL.Query(sql, new SqlParameter("@n", pagenum)).Tables[];
//这里得到的根据条件查询得到的数据总的条数
total = Convert.ToInt32(DbHelperSQL.GetSingle("select COUNT(*) from eazy_yiliaofuwu where typeid=" + id));
Medicalitems medicalitems = new Medicalitems();
medicalitems.medicalitem = new Medicalitem[dt.Rows.Count];
medicalitems.PageCount = (int)Math.Ceiling(total / 10.0);//总的页码0.1→1 , 0.95→1, 1.01→2,1.0→1
for (int i = ; i < dt.Rows.Count; i++)
{
medicalitems.medicalitem[i] = new Medicalitem() { MedicalCode=dt.Rows[i]["ylcode"].ToString(), MedicalContent=dt.Rows[i]["itemcontent"].ToString(), MedicalName=dt.Rows[i]["itemname"].ToString(), MedicalPrice=dt.Rows[i]["price"].ToString(), MedicalUnit=dt.Rows[i]["danwei"].ToString() };
}
context.Response.Write(new JavaScriptSerializer().Serialize(medicalitems)); } public bool IsReusable
{
get
{
return false;
}
}
}
class Medicalitems
{
public Medicalitem[] medicalitem { get; set; }
public int PageCount { get; set; } }
class Medicalitem
{
public string MedicalCode { get; set; }
public string MedicalName { get; set; }
public string MedicalContent { get; set; }
public string MedicalUnit { get; set; }
public string MedicalPrice { get; set; } }
}

 再来说说前端代码:

分页代码:点此下载       其它分页插件:点此下载

<script type="text/javascript">
var id;
function getdata(v) {
$("#pageGro").removeAttr("style");
id=v;
ShowPage();
} function ShowPage(pagenum){
$.post("../../tools/getyaopinfuwu.ashx", { "id": id,"pagenum":pagenum }, function (data) { //根据总页数判断,如果小于5页,则显示所有页数,如果大于5页,则显示5页。根据当前点击的页数生成 var pageCount = parseInt(data.PageCount);//模拟后台总页数
//生成分页按钮
if(pageCount>){
page_icon(,,);
}else{
page_icon(,pageCount,);
} //点击分页按钮触发
$("#pageGro li").live("click",function(){
//alert(id);
if(pageCount > ){
var pageNum = parseInt($(this).html());//获取当前页数
pageGroup(pageNum,pageCount); }else{
$(this).addClass("on");
$(this).siblings("li").removeClass("on");
var pageNum = parseInt($(this).html());//获取当前页数
ShowPage2(pageNum);
}
}); //点击上一页触发
$("#pageGro .pageUp").click(function(){
if(pageCount > ){
var pageNum = parseInt($("#pageGro li.on").html());//获取当前页
pageUp(pageNum,pageCount);
}else{
var index = $("#pageGro ul li.on").index();//获取当前页
if(index > ){
$("#pageGro li").removeClass("on");//清除所有选中
$("#pageGro ul li").eq(index-).addClass("on");//选中上一页
var pageNum = parseInt($("#pageGro li.on").html());//获取当前页
ShowPage2(pageNum);
}
}
}); //点击下一页触发
$("#pageGro .pageDown").click(function(){
if(pageCount > ){
var pageNum = parseInt($("#pageGro li.on").html());//获取当前页
pageDown(pageNum,pageCount);
}else{
var index = $("#pageGro ul li.on").index();//获取当前页
if(index+ < pageCount){
$("#pageGro li").removeClass("on");//清除所有选中
$("#pageGro ul li").eq(index+).addClass("on");//选中上一页
var pageNum = parseInt($("#pageGro li.on").html());//获取当前页
ShowPage2(pageNum);
}
}
}); //页码
var TotalPageNum=data.PageCount; $("#myui").empty();//首先清空当前容器下面的所有内容
var table=data.medicalitem;//这里得到一个数据对象的数组
for (var i = ; i < table.length; i++) {
var item=table[i];
$("<a ><li class=''> <div class='clrfix'><div class='honor_x'> <div class='time'>"+item.MedicalCode+"</div> </div> <div class='honor_n'>"+item.MedicalName+"</div><div class='honor_p'>"+item.MedicalContent+"</div> <div class='honor_n'>"+item.MedicalUnit+"</div> <div class='honor_c'>"+item.MedicalPrice+" </div> </div></li> </a> ").appendTo("#myui"); } },"json"); } function ShowPage2(pagenum){ $.post("../../tools/getyaopinfuwu.ashx", { "id": id,"pagenum":pagenum }, function (data) { $("#myui").empty(); var table=data.medicalitem;
for (var i = ; i < table.length; i++) {
var item=table[i];
$("<a ><li class=''> <div class='clrfix'><div class='honor_x'> <div class='time'>"+item.MedicalCode+"</div> </div> <div class='honor_n'>"+item.MedicalName+"</div><div class='honor_p'>"+item.MedicalContent+"</div> <div class='honor_n'>"+item.MedicalUnit+"</div> <div class='honor_c'>"+item.MedicalPrice+" </div> </div></li> </a> ").appendTo("#myui"); } },"json"); } </script>

asp.net分页asp.net无刷新分页高效率分页的更多相关文章

  1. ASP.NET Ajax简单的无刷新分页

    最近练习了一些AJAX无刷新分页,写得比较简单,性能不知道怎么样,求大神指点,如有更好的分页提供,欢迎交流! 发话不多说了,直接上代码! 首先从网上下了一个JS分页,感觉挺好用的 (function( ...

  2. ASP.NET MVC使用jQuery无刷新上传

    昨晚网友有下载了一个jQuery无刷新上传的小功能,他尝试搬至ASP.NET MVC应用程序中去,在上传死活无效果.Insus.NET使用Teamviewer远程桌面,操作一下,果真是有问题.网友是说 ...

  3. SSH(Struts 2.3.31 + Spring 4.1.6 + Hibernate 5.0.12 + Ajax)框架整合实现简单的增删改查(包含分页,Ajax 无刷新验证该用户是否存在)

    软件152 余建强 该文将以员工.部门两表带领大家进入SSH的整合教程: 源码下载:http://download.csdn.net/detail/qq_35318576/9877235 SSH 整合 ...

  4. knockoutjs+ jquery pagination+asp.net web Api 实现无刷新列表页

    Knockoutjs 是一个微软前雇员开发的前端MVVM JS框架, 具体信息参考官网 http://knockoutjs.com/ Web API数据准备: 偷个懒数据结构和数据copy自官网实例  ...

  5. asp.net treeview控件无刷新选择和删除节点的ajax方法

    转载 http://blog.csdn.net/luq885/article/details/1621681 如果节点被选择的话,节点所在的td的class属性就会被设置为TreeView1_1.   ...

  6. Asp.net MVC Vue Axios无刷新请求数据和响应数据

    Model层Region.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; ...

  7. [转]Oracle分页之三:利用PagerView来实现无刷新GridView

    本文转自:http://www.cnblogs.com/scy251147/archive/2011/04/16/2018355.html 接上面一节,上面还存在问题就是分页控件使用的仍然是服务器端控 ...

  8. ajax实现无刷新分页效果

    基于jquery.pagination.js实现的无刷新加载分页数据效果. 简介与说明 * 该插件为Ajax分页插件,一次性加载数据,故分页切换时无刷新与延迟.如果数据量较大,加载会比较慢. * 分页 ...

  9. ASP.NET中无刷新分页

    上次介绍了我们代码写的刷新分页,这次就来说说无刷新分页. 这次我们是在上次的基础上改动了一些,我们都知道想要无刷新,就需要Ajax,在我们的ASP.NET中AJax是和一般处理程序配合着用的. 无刷新 ...

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

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

随机推荐

  1. 让intellij挂在异常处,特别是出现null pointer的地方

    1 在Intellij中设置java exception breakpoint 在调试模式下,run->view breakpoints 在java exception breakpoints- ...

  2. PAT 1058. 选择题(20)

    批改多选题是比较麻烦的事情,本题就请你写个程序帮助老师批改多选题,并且指出哪道题错的人最多. 输入格式: 输入在第一行给出两个正整数N(<=1000)和M(<=100),分别是学生人数和多 ...

  3. STM32L0 HAL库 IO读写功能

    开发环境使用 MDK5.16a + CUBEMX生成代码 开发板使用:NUCLEO-L053R8 核心芯片:STM32L053R8 今天主要学习了下最基础的IO的读写,IO使用 PA5   LED输出 ...

  4. sql语句 字段的赋值

    将同一个表中的一个字段2的所有值赋值给另一个字段1 UPDATE 表名 SET 字段1 = 字段2 也可以把字段所有的值赋为null UPDATE 表名 SET 字段1 = null

  5. mysql主从复制(windows下)

    简单搭建mysql主从服务器(双向复制),仅供学习之用. 1.下载mysql-advanced-5.6.16-winx64.zip 下载完成后解压,重命名成mysql,分别放入两台服务器(看第二点集群 ...

  6. 【leetcode刷题笔记】Triangle

    Given a triangle, find the minimum path sum from top to bottom. Each step you may move to adjacent n ...

  7. Python导出数据生成excel报表

    #_*_coding:utf-8_*_ import MySQLdb import xlwt from datetime import datetime def get_data(sql): # 创建 ...

  8. Python运算和和表达式 学习笔记

    光荣之路Python公开课第二讲 Python运算符和表达式. 一 Python运算符 Python运算符包括 算术运算符,赋值运算符,位运算符,逻辑运算符,身份运算符,成员运算符. 1. 算术运算符 ...

  9. CommonJS与AMD、CMD

    随着JS模块化编程的发展,处理模块之间的依赖关系变得至关重要,随后诞生了CommonJS.AMD与CMD规范,但es6的import/export能代替他们,但因为本人所使用的webpack也支持前三 ...

  10. GetTickCount的几个案例

    一,获得运行时间: var T1,T2 : double; begin T1 := GetTickCount; //需要做的事情 T2 := GetTickCount; ShowMessage( fl ...