web下c#用jquery.tmpl.min.js插件实现分页_yginuo
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了web下c#用jquery.tmpl.min.js插件实现分页_yginuo,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4009字,纯文字阅读大概需要6分钟。
内容图文
背景:webform或者mvc下实现插件快速分页
ps:我这里用的mvc开发的,数据库连接。用的ADO.NET实体数据模型
此案例下载地址(内含需要用到的一个插件与数据库):http://download.csdn.net/detail/u011597071/9384578
效果图:
1.需要加载的框架
1 @*加载jquery框架*@ 2 < script src ="~/Scripts/jquery-1.8.2.min.js" ></ script > 3 @*加载Tmpl分页控件*@ 4 < script src ="~/Scripts/jquery.tmpl.min.js" ></ script >
4.需要添加的类:
1 public class Pager 2 { 3 // 上页 4 public string Pre { get; set; } 5//下一页 6publicstring Next { get; set; } 7//首页 8publicstring First { get; set; } 9//末页10publicstring Last { get; set; } 11//当前为第几页数据12publicstring Current { get; set; } 13//总共页面14publicstring Count { get; set; } 15 }
3.前台代码
1 < html > 2 < head > 3 < meta name ="viewport" content ="width=device-width" /> 4 < title >Index</title> 5 @*加载jquery框架*@ 6<script src="~/Scripts/jquery-1.8.2.min.js"></script> 7 @*加载Tmpl分页控件*@ 8<script src="~/Scripts/jquery.tmpl.min.js"></script> 9 @*自定义分页模板*@ 10<script type="text/x-jquery-tmpl" id="pager">11<div>12<a href="javascript:Load(${First})">首页 </a> 13<a href="javascript:Load(${Pre})">上一页</a> 14<a href="javascript:Load(${Next})">下一页</a> 15<a href="javascript:Load(${Last})">末页</a> 16 总共${Count}页/当前第${Current}页17</div>18</script>19<script>20 $(function () { 21//jquery框架载入后执行Load方法,并传入需要查询的页面122 Load(1); 23 }); 24function Load(pIndex) { 25//执行一个ajax请求26 $.ajax({ 27//请求的路径,并且传入需要查询的页面28 url: "/Home/List/"+ pIndex, 29//返回的数据类型30 dataType: "json", 31//请求正常执行后调用的方法32 success: function (result) { 33//清空指定表格里面的数据34 $("#tab").empty(); 35//这里返回的对象为json。所以需要遍历返回的键为rows的对象36//便利方法中i为索引,mod为值37 $.each(result.rows, function (i, mod) { 38//创建一行39var tr ="<tr><td>"+ mod.Title +"</td></tr>"; 40//追加到tab里面41 $("#tab").append(tr); 42 }); 43//清空id为paged的div里面的内容44 $("#paged").empty(); 45//把id为pager的js模板调用tmpl方法并传入返回的json中的pager对象。追加到id为paged的div标签中46 $("#pager").tmpl(result.pager).appendTo("#paged"); 47 } 48 }); 49 } 50</script>51<style>52 table {53 border-collapse:collapse;54 border:1px solid #0094ff;55}56 tr {57 border-collapse:collapse;58 border:1px solid #0094ff;59}60</style>61</head>62<body>63<div>64<table id="tab"></table>65<div id="paged"></div>66</div>67</body>68</html>
4.后台代码
1 public class HomeController : Controller 2 { 3 BookShopPlusEntities db = new BookShopPlusEntities(); 4public ActionResult Index() 5 { 6return View(); 7 } 8public ActionResult List(int id) 9 { 10//指定每页多少条数据11int pageSize = 10; 12//获取books表下全部的数据13 List<Books> list = db.Books.ToList(); 14//跳过数据中指定的条数(每页数乘当前页),然后截取指定条数(每页多少条)的数据15 List<Books> data = list.Skip((id - 1) * pageSize).Take(pageSize).ToList(); 16//创建一个匿名类,防止死循环17var result = from b in data 18selectnew19 { 20 Title = b.Title, 21 Id = b.Id 22 }; 23//获取总共的页码(这里用的是三目法)24int pgCount = list.Count() % pageSize == 0 ?list.Count() / pageSize : list.Count() / pageSize + 1; 25//创建一个Pager对象,并且调用SetPager方法为Pager对象赋值(传入当前页和总页数)26 Pager pagerData = SetPager(id, pgCount); 27//返回json28return Json(new { rows = result, pager = pagerData }, JsonRequestBehavior.AllowGet); 29 } 30public Pager SetPager(int pid, int pgCount) 31 { 32//创建对象33 Pager pager = new Pager(); 34//为对象赋值35 pager.Current = pid + ""; 36//调用PrePage,目的是防止当前页为1,但是用户还点上一页 37 pager.Pre = PrePage(pid) + ""; 38//调用NextPage,目的是防止当前页为最后一页,但是用户还点下一页导致的错误39 pager.Next = NextPage(pid, pgCount) + ""; 40 pager.First = "1"; 41 pager.Last = pgCount + ""; 42 pager.Count = pgCount + ""; 43//最后返回对象44return pager; 45 } 46publicint PrePage(int pid) 47 { 48if (pid == 1) 49return1; 50else51return pid - 1; 52 } 53publicint NextPage(int pid, int pgCount) 54 { 55if (pid == pgCount) 56return pgCount; 57else58return pid + 1; 59 } 6061 }
原文:http://www.cnblogs.com/yginuo/p/5090001.html
内容总结
以上是互联网集市为您收集整理的web下c#用jquery.tmpl.min.js插件实现分页_yginuo全部内容,希望文章能够帮你解决web下c#用jquery.tmpl.min.js插件实现分页_yginuo所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。