asp.net分页asp.net无刷新分页高效率分页
项目中经常会用到分页的功能类似的项目做过无数个了,今个把自己常用的分页代码分享一下。
首先说说服务端处理的代码:
下面代码中重点是分页的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无刷新分页高效率分页的更多相关文章
- ASP.NET Ajax简单的无刷新分页
最近练习了一些AJAX无刷新分页,写得比较简单,性能不知道怎么样,求大神指点,如有更好的分页提供,欢迎交流! 发话不多说了,直接上代码! 首先从网上下了一个JS分页,感觉挺好用的 (function( ...
- ASP.NET MVC使用jQuery无刷新上传
昨晚网友有下载了一个jQuery无刷新上传的小功能,他尝试搬至ASP.NET MVC应用程序中去,在上传死活无效果.Insus.NET使用Teamviewer远程桌面,操作一下,果真是有问题.网友是说 ...
- 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 整合 ...
- knockoutjs+ jquery pagination+asp.net web Api 实现无刷新列表页
Knockoutjs 是一个微软前雇员开发的前端MVVM JS框架, 具体信息参考官网 http://knockoutjs.com/ Web API数据准备: 偷个懒数据结构和数据copy自官网实例 ...
- asp.net treeview控件无刷新选择和删除节点的ajax方法
转载 http://blog.csdn.net/luq885/article/details/1621681 如果节点被选择的话,节点所在的td的class属性就会被设置为TreeView1_1. ...
- Asp.net MVC Vue Axios无刷新请求数据和响应数据
Model层Region.cs using System; using System.Collections.Generic; using System.Linq; using System.Web; ...
- [转]Oracle分页之三:利用PagerView来实现无刷新GridView
本文转自:http://www.cnblogs.com/scy251147/archive/2011/04/16/2018355.html 接上面一节,上面还存在问题就是分页控件使用的仍然是服务器端控 ...
- ajax实现无刷新分页效果
基于jquery.pagination.js实现的无刷新加载分页数据效果. 简介与说明 * 该插件为Ajax分页插件,一次性加载数据,故分页切换时无刷新与延迟.如果数据量较大,加载会比较慢. * 分页 ...
- ASP.NET中无刷新分页
上次介绍了我们代码写的刷新分页,这次就来说说无刷新分页. 这次我们是在上次的基础上改动了一些,我们都知道想要无刷新,就需要Ajax,在我们的ASP.NET中AJax是和一般处理程序配合着用的. 无刷新 ...
- Ajax+Asp.Net无刷新分页
1.新建解决方案,并建立四个项目BLL,DAL,Model,PagerTest,如图所示: 2.Model代码 using System; using System.Collections.Gener ...
随机推荐
- 九度OJ 1189:还是约瑟夫环 (约瑟夫环)
时间限制:1 秒 内存限制:32 兆 特殊判题:否 提交:820 解决:522 题目描述: 生成一个长度为21的数组,依次存入1到21: 建立一个长度为21的单向链表,将上述数组中的数字依次存入链表每 ...
- 【译】Stackoverflow:Java Servlet 工作原理问答
导读 本文来自stackoverflow的问答,讨论了Java Servlet的工作机制,如何进行实例化.共享变量和多线程处理. 问题:Servlet 是如何工作的?Servlet 如何实例化.共享变 ...
- 北京君正集成电路的Newton平台--穿戴式
版权声明:本文为博主原创文章,转载请注明出处. https://blog.csdn.net/hellomxj1/article/details/25324125 Newton1开发平台 • 很适合 ...
- Java的接口和抽象类(转发:http://www.importnew.com/18780.html)
深入理解Java的接口和抽象类 对于面向对象编程来说,抽象是它的一大特征之一.在Java中,可以通过两种形式来体现OOP的抽象:接口和抽象类.这两者有太多相似的地方,又有太多不同的地方.很多人在初学的 ...
- mysql怎么在已建好的表中添加自增序列
alter table 表明 change id id int not null auto_increment unique;
- 文件传输协议FTP
之前已经了解了TCP/IP这种低级别的协议,还有一些网络协议包括文件传输(FTP,STP).阅读Usenet新闻组(NNTP).电子邮件发送(SMTP).从服务器上下载电子邮件(POP3.IMAP)等 ...
- js实现select动态添加option
关于 select 的添加 option 应该注意的问题. 标准的做法如上也就是说,标准的做法是 s.options.add();但是如果你一定要用 s.appendChild(option);注意了 ...
- 【leetcode刷题笔记】Anagrams
Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be ...
- 优化chkconfig
只保留系统服务: crond /network /sshd /rsyslog /sysstat 其他服务全部关闭 首先将所有 3:on的服务名过滤出来,然后 grep -vE 排除需要的服务 #!/b ...
- 012_流式计算系统(Mahout协同过滤)
课程介绍 课程内容 1.Mahout是什么 l Mahout是一个算法库,集成了很多算法. l Apache Mahout 是 Apache Software Foundation(ASF)旗下的 ...