源码来袭!!!基于jquery的ajax分页插件(demo+源码)

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

  过去的一年也是展转了几个城市换了几份工做(注定本命年不太平?)。八月份来到如今所在的公司(OTA行业),公司是作互联网的,因此可能你们的前端都看起来很屌?以前一直从事.NET开发(如今在这边也是),js也用的不多。因而趁着这个机会跟着你们学学js。本文要说到的插件就是在学习的过程当中本身开发的。css

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

  若是有javascript基础,用过jquery,看了上面的文章,我相信妈妈不再用担忧你不会jQuery插件开发了。前端

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

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

 1 var sjPager = window.sjPager = {
 2         opts: {
 3             //默认属性
 4             pageSize: 10,
 5             preText: "pre",
 6             nextText: "next",
 7             firstText: "First",
 8             lastText: "Last",
 9             shiftingLeft: 3,
10             shiftingRight: 3,
11             preLeast: 2,
12             nextLeast: 2,
13             showFirst: true,
14             showLast: true,
15             url: "",
16             type: "POST",
17             dataType: "JSON",
18             searchParam: {},
19             beforeSend: null,
20             success: null,
21             complete: null,
22             error: function () {
23                 alert("抱歉,请求出错,请从新请求!");
24             },
25         },
26         pagerElement: null,//分页dom元素
27         commonHtmlText: {
28             //公共文本变量
29         },
30         init: function (obj, op) {
31             //对象初始化
32         },
33         doPage: function (index, pageSize, searchParam) {
34             //执行分页方法
35         },
36         getTotalPage: function () {
37             //获取总页数
38         },
39         createPreAndFirstBtn: function (pageTextArr) {
40             //建立上一页、首页按钮连接
41         },
42         createNextAndLastBtn: function (pageTextArr) {
43             //建立下一页、尾页按钮连接
44         },
45         createIndexBtn: function (pageTextArr) {
46             //中间分页索引按钮连接
47         },
48         renderHtml: function (pageTextArr) {
49             //渲染分页控件到页面
50         },
51         createSpan: function (text, className) {
52             //建立span
53         },
54         createIndexText: function (index, text) {
55             //建立索引文本
56         },
57         jumpToPage: function () {
58             //跳转到
59         }
60     }

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

  二、进行jQuery扩展程序员

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

  三、插件使用github

1 <body>
2     
3     <table id="dataTable" border="1px"></table>
4     <div id="pager"></div>
5 </body>
 1     $(function() {
 2             $('#pager').sjAjaxPager({
 3                 url: "Handler1.ashx",
 4                 pageSize: 10,
 5                 searchParam: {
 6                     /*
 7                     * 若是有其余的查询条件,直接在这里传入便可
 8                     */
 9                     id: 1,
10                     name:'test',
11                 },
12                 beforeSend: function () {
13                 },
14                 success: function (data) {
15                     /*
16                     *返回的数据根据本身须要处理
17                     */
18                     var tableStr = "<tr><td>Id</td><td>姓名</td><td>年龄</td></tr>";
19                     $.each(data.items, function(i,v) {
20                         tableStr += "<tr><td>" + v.Id + "</td><td>" + v.Name + "</td><td>" + v.Age + "</td></tr>";
21                     });
22 
23                     $('#dataTable').html(tableStr);
24                 },
25                 complete: function () {
26                 }
27             });
28 
29             
30         })

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

  最后咱们能够看下出来的效果:(表格样式没有设置比较丑,分页样式本身也能够根据须要修改css文件)

  

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

  

  

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

  这里只有代码的大致结构及呈现的效果,你们不妨本身先动手实现一下,须要源码及DEMO的能够去个人github下载:https://github.com/sujing910206/ajax-pager DEMO是.NET实现的,可是若是是其余语言,实现的方式也都同样。

 

写在最后:

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

相关文章
相关标签/搜索