前几天打开自己的博客园主页,发现自己的园龄竟然有4年之久了,没记错的话刚接触编程就知道了博客园,也就是说我入坑4年了?时光啊~。刚学习编程的时候最喜欢的就是来园子里听大神们吹牛逼,看着他们装逼就觉得很过瘾,也学到了很多知识和技能。说来也惭愧,自己却没能为园友们分享自己的所学所得(毕竟水平烂!)。

  过去的一年也是辗转了几个城市换了几份工作(注定本命年不太平?)。八月份来到现在所在的公司(OTA行业),公司是做互联网的,所以可能大家的前端都看起来很屌?之前一直从事.NET开发(现在在这边也是),js也用的很少。于是趁着这个机会跟着大家学学js。本文要说到的插件就是在学习的过程中自己开发的。

  如果你还对jQuery插件开发没有任何了解,推荐一篇文章 http://www.cnblogs.com/Wayou/p/jquery_plugin_tutorial.html(博客园的前端大神很多啊,前段时间在园子看到很多优秀的js文章)

  如果有javascript基础,用过jquery,看了上面的文章,我相信妈妈再也不用担心你不会jQuery插件开发了。

  既然说到基于jQuery的ajax分页插件,那我们就先看看主要的代码结构:(我觉得对咱们程序员来说再优美的文字描述、介绍也比不上代码来得实在。Talk is cheap,Show me the code!)

  1、首先定义一个pager对象:

 var sjPager = window.sjPager = {
opts: {
//默认属性
pageSize: 10,
preText: "pre",
nextText: "next",
firstText: "First",
lastText: "Last",
shiftingLeft: 3,
shiftingRight: 3,
preLeast: 2,
nextLeast: 2,
showFirst: true,
showLast: true,
url: "",
type: "POST",
dataType: "JSON",
searchParam: {},
beforeSend: null,
success: null,
complete: null,
error: function () {
alert("抱歉,请求出错,请重新请求!");
},
},
pagerElement: null,//分页dom元素
commonHtmlText: {
//公共文本变量
},
init: function (obj, op) {
//对象初始化
},
doPage: function (index, pageSize, searchParam) {
//执行分页方法
},
getTotalPage: function () {
//获取总页数
},
createPreAndFirstBtn: function (pageTextArr) {
//创建上一页、首页按钮链接
},
createNextAndLastBtn: function (pageTextArr) {
//创建下一页、尾页按钮链接
},
createIndexBtn: function (pageTextArr) {
//中间分页索引按钮链接
},
renderHtml: function (pageTextArr) {
//渲染分页控件到页面
},
createSpan: function (text, className) {
//创建span
},
createIndexText: function (index, text) {
//创建索引文本
},
jumpToPage: function () {
//跳转到
}
}

  对象包含了分页的属性及用到的方法,doPage()为分页的核心方法。

  2、进行jQuery扩展

 $.fn.sjAjaxPager = function (option) {
return sjPager.init($(this), option);
};

  3、插件使用

 <body>

     <table id="dataTable" border="1px"></table>
<div id="pager"></div>
</body>
     $(function() {
$('#pager').sjAjaxPager({
url: "Handler1.ashx",
pageSize: 10,
searchParam: {
/*
* 如果有其他的查询条件,直接在这里传入即可
*/
id: 1,
name:'test',
},
beforeSend: function () {
},
success: function (data) {
/*
*返回的数据根据自己需要处理
*/
var tableStr = "<tr><td>Id</td><td>姓名</td><td>年龄</td></tr>";
$.each(data.items, function(i,v) {
tableStr += "<tr><td>" + v.Id + "</td><td>" + v.Name + "</td><td>" + v.Age + "</td></tr>";
}); $('#dataTable').html(tableStr);
},
complete: function () {
}
}); })

  有没有发现使用方式与直接使用ajax基本是一样一样的?

  最后我们可以看下出来的效果:(表格样式没有设置比较丑,分页样式自己也可以根据需要修改css文件)

  

  F12打开调试工具,点击分页查看发送的请求及响应:

  

  

  pageIndex和pageSize为插件默认的参数,在后台可以直接在Request中获取。特别需要注意的是插件的响应也是需要遵循特定的格式{"total":0,"items":[]},如上图中所示total代表数据总记录数,items代表分页的数据。

  这里只有代码的大体结构及呈现的效果,大家不妨自己先动手实现一下,需要源码及DEMO的可以去我的github下载:https://github.com/sujing910206/ajax-pager DEMO是.NET实现的,但是如果是其他语言,实现的方式也都一样。

写在最后:

  最后,请允许我矫情一下,就一下下(此处应该有害羞的表情⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄)。本命年终于快过去,过去的一年离开了呆了六年的地方还有很多一起玩耍的小伙伴,当然也加入了单身狗行列。来到深圳,我不知道我为何来会来深圳,完全陌生的一座城市,或许是有人告诉我这里适合年轻人,或许是听说这里冬天很暖和,也或许只是不想再继续呆在原来的地方。其实从很小开始就一个人在外面求学、工作,早已习惯了一个人在外面漂泊,难道是我这一生注定放纵不羁爱自由?啊哈哈哈哈。刚来这边的时候除了不适应还是不适应,可谓人生地不熟,也没有怎么出去玩过。现在也是,每天基本都是两点一线,周末才偶尔会去打打球唱唱歌来自娱自乐。终于快等到了猴年马月,新的一年希望我的生活能更丰富、交更多的朋友(女朋友),领悟更多的编程思想,坚持撸代码。好了,技术圣地不谈情感,希望这篇文章对你有帮助!

源码来袭!!!基于jquery的ajax分页插件(demo+源码)的更多相关文章

  1. jQuery Pagination Ajax分页插件中文详解(摘)

    jQuery Pagination Ajax分页插件中文详解 by zhangxinxu from http://www.zhangxinxu.com 本文地址:http://www.zhangxin ...

  2. 浅谈jQuery Pagination Ajax 分页插件的使用

    插件介绍 此插件是jQuery的ajax分页插件.分页切换时无刷新也无延迟,因为是一次性加载的.如果你用到此插件作分页的时候,涉及到的数据量大,建议不要使用此插件,因为加载慢会导致用户体验不好! 插件 ...

  3. [转]jQuery Pagination Ajax分页插件中文详解

    在做项目时需要用到在前端页面中需要实现分页显示的功能,类似于博客园下面的分页导航.从网上找了几个,觉得下面这个使用起来非常简单,也很方便.特在这里记录一下. 以下为文章原文. 中文项目地址:http: ...

  4. jQuery Pagination Ajax分页插件中文详解(转)

    一.相关demo 基本demo页面 Ajax demo页面 参数可编辑demo页面 二.简介与说明 此jQuery插件为Ajax分页插件,一次性加载,故分页切换时无刷新与延迟,如果数据量较大不建议用此 ...

  5. 基于Jquery的Ajax分页,只有上一页和下一页

    最近项目中用到ajax分页 在网上找到一个非常好用的分页插件jquery-pagination-ajax,以下是链接 http://www.zhangxinxu.com/wordpress/2010/ ...

  6. 10款基于jquery的web前端特效及源码下载

    1.jQuery时间轴插件:jQuery Timelinr 这是一款可用于展示历史和计划的时间轴插件,尤其比较适合一些网站展示发展历程.大事件等场景.该插件基于jQuery,可以滑动切换.水平和垂直滚 ...

  7. 基于jQuery的ajax对WebApi和OData的封装

    基于jQuery的ajax对WebApi和OData的封装 WebApi 的使用带来了一个显著的特点,对type有一定的要求.一般ajax的type无非就是两种,GET和POST.如果用JSONP来跨 ...

  8. 精心挑选的12款优秀 jQuery Ajax 分页插件和教程

    在这篇文章中,我为大家收集了12个基于 jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示.Ajax 技术的出现使得 Web 项目的用户体验有了极大的提高,如今借助优秀的  ...

  9. 转:精心挑选的12款优秀 jQuery Ajax 分页插件和教程

    在这篇文章中,我为大家收集了12个基于 jQuery 框架的 Ajax 分页插件,这些插件都提供了详细的使用教程和演示.Ajax 技术的出现使得 Web 项目的用户体验有了极大的提高,如今借助优秀的  ...

随机推荐

  1. 折腾iPhone的生活——通过设置使iPhone更省电

    入手了iPhone5s,上手感觉iPhone没有过去省电了,可能是iOS7的关系,也有可能是我一直在下应用的关系,但是iPhone5s那1500mA的电池的确是有点真的不那么够用的样子,通过设置来省电 ...

  2. [转载]jquery的extend和fn.extend

    jQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(object); jQuery.extend(object); jQuery.extend(object); 为扩展j ...

  3. php写excel

    $this->loadexcel();        $objPHPExcel = new PHPExcel();        $objPHPExcel->getProperties() ...

  4. zabbix oracle监控插件orabbix部署安装

    1,下载orabbix插件包(插件包同时满足在大部分POSIX-linux及unix和大部分版本的windows下运行,玩转类似但不等同于Tomcat) wget http://www.smartma ...

  5. [每日一题] OCP1z0-047 :2013-08-02 权限―――分配系统权限

    这题是考权限的知识点,权限分为两大类,系统权限和对象权限,这题主要讲系统权限,我们先来了解什么是系统权,什么是对象权限吧. 1.系统权限:允许用户在数据库中执行特定的操作 A.SYSDBA/SYSOP ...

  6. 400. Nth Digit

    这个EASY难度的题怎么感觉比H的还难,昨天没做出来,今天才做出来.. 呃啊..我生 气 啦.. 直接看的答案,耻辱. 1 digit: 1~9 总共1×9个 2 digits: 10~99 总共2× ...

  7. 关于python写GUI桌面应用的一些研究结果

    研究了一下python开发GUI桌面应用的解决方案,研究结果记录如下: EasyGui:控件极为简单,连个基本的grid.list组件都没有,不适合商用,甚至是普通的应用都不行,放弃! Tkinter ...

  8. bzoj2658: [Zjoi2012]小蓝的好友(mrx)

    太神辣 treap的随机键值竟然能派上用场.. 要用不旋转的treap来进行维护区间信息 #include<cstdio> #include<cstring> #include ...

  9. 洛谷 P1005 矩阵取数游戏

    题目描述 帅帅经常跟同学玩一个矩阵取数游戏:对于一个给定的n*m的矩阵,矩阵中的每个元素aij均为非负整数.游戏规则如下: 1.每次取数时须从每行各取走一个元素,共n个.m次后取完矩阵所有元素: 2. ...

  10. c#语言基础编程—string

    引言 在c#中经常会有相关的string的操作,string类型为引用类型,集成于Object,所以会有四个方法.详情可见 值类型和引用类型的区别 里面详细介绍了,值类型和引用类型的区别和应用场合,所 ...