MVC - 20.前台ajax分页
1.用pager方法,输入参数,会返回一个导航条的html字符串。方法的内部比较简单。
ajax-pager.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 | /** * pageSize, 每页显示数 * pageIndex, 当前页数 * pageCount 总页数 * url 连接地址 * pager(10, 1, 5, 'Index')使用方法示例 */ function pager(pageSize, pageIndex, pageCount, url) { var intPage = 5; //数字显示 var intBeginPage = 0; //开始的页数 var intEndPage = 0; //结束的页数 var intCrossPage = parseInt(intPage / 2); //显示的数字 var strPage = "<div class='fr'><span class='pageinfo'>第 <font color='#FF0000'>" + pageIndex + "/" + pageCount + "</font> 页 每页 <font color='#FF0000'>" + pageSize + "</font> 条</span>" ; if (pageIndex > 1) { strPage = strPage + "<a class='pageNav' href='" + url + "?pageIndex=1&pageSize=" + pageSize + "'><span>首页</span></a> " ; strPage = strPage + "<a class='pageNav' href='" + url + "?pageIndex=" + (pageIndex - 1) + "&pageSize=" + pageSize + "'><span>上一页</span></a> " ; } if (pageCount > intPage) { //总页数大于在页面显示的页数 if (pageIndex > pageCount - intCrossPage) { //当前页数>总页数-3 intBeginPage = pageCount - intPage + 1; intEndPage = pageCount; } else { if (pageIndex <= intPage - intCrossPage) { intBeginPage = 1; intEndPage = intPage; } else { intBeginPage = pageIndex - intCrossPage; intEndPage = pageIndex + intCrossPage; } } } else { intBeginPage = 1; intEndPage = pageCount; } if (pageCount > 0) { for ( var i = intBeginPage; i <= intEndPage; i++) { { if (i == pageIndex) { //当前页 strPage = strPage + " <a class='current' href='javascript:void(0);'>" + i + "</a> " ; } else { strPage = strPage + " <a class='pageNav' href='" + url + "?pageIndex=" + i + "&pageSize=" + pageSize + "' title='第" + i + "页'>" + i + "</a> " ; } } } } if (pageIndex < pageCount) { strPage = strPage + "<a class='pageNav' href='" + url + "?pageIndex=" + (pageIndex + 1) + "&pageSize=" + pageSize + "'><span>下一页</span></a> " ; strPage = strPage + "<a class='pageNav' href='" + url + "?pageIndex=" + pageCount + "&pageSize=" + pageSize + "'><span>尾页</span></a> " ; } return strPage+ "</div>" ; } |
activity.cshtml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 | <! DOCTYPE html> < html xmlns="http://www.w3.org/1999/xhtml"> < head > < meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> < title ></ title > < script src="Script/ajax-pager.js"></ script > < script src="Script/jquery-1.8.0.js"></ script > < script type="text/javascript"> $(function () { loadData(1, 10); //分页条点击事件 $(document.body).on('click', '.pageNav', function () { var pageSize = Number(getQueryString('pageSize', $(this).attr('href'))); var pageIndex = Number(getQueryString('pageIndex', $(this).attr('href'))); loadData(pageIndex, pageSize); return false;//不跳转页面 }); }); //加载数据 function loadData(pageIndex, pageSize) { $.getJSON('Content/CustomersData.txt', { pageIndex: pageIndex, pageSize: pageSize }, function (data) { var beginIndex = (pageIndex - 1) * pageSize; var endIndex = pageIndex * pageSize - 1; var tbodyHtml = ''; for (var i = beginIndex; i < endIndex ; i++) { if (!data.Rows[i]) { break; } var tbody = '<tr>< td >{0}</ td >< td >{1}</ td >< td >{2}</ td >< td >{3}</ td >< td >{4}</ td >< td >{5}</ td >'; tbody += '< td >{6}</ td >< td >{7}</ td >< td >{8}</ td >< td >{9}</ td >< td >{10}</ td ></ tr >'; tbody = tbody.format(data.Rows[i].CustomerID, data.Rows[i].CompanyName, data.Rows[i].ContactName, data.Rows[i].ContactTitle, data.Rows[i].Address, data.Rows[i].City, data.Rows[i].Region ? data.Rows[i].Region : '', data.Rows[i].PostalCode, data.Rows[i].Country, data.Rows[i].Phone, data.Rows[i].Fax ? data.Rows[i].Fax : ''); tbodyHtml += tbody; } $('#tb').find('tbody').first().html(tbodyHtml); var pageCount = parseInt((data.Total / pageSize)) + (data.Total % pageSize ? 1 : 0); $('#dvPager').html(pager(pageSize, pageIndex, pageCount, 'CustomersData.txt')); } ); } //字符串格式化 String.prototype.format = function (args) { var result = this; var reg; if (arguments.length > 0) { if (arguments.length == 1 && typeof (args) == "object") { for (var key in args) { if (args[key] !== undefined) { reg = new RegExp("({" + key + "})", "g"); result = result.replace(reg, args[key]); } } } else { for (var i = 0; i < arguments.length ; i++) { if (arguments[i] !== undefined) { reg = new RegExp("({)" + i + "(})", "g"); result = result.replace(reg, arguments[i]); } } } } return result; }; //获取url参数 function getQueryString(name, url) { var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); url = url && url.indexOf('?') >= 0 ? url.substring(url.indexOf('?'), url.length) : window.location.search; var r = url.substr(1).match(reg); if (r != null) return unescape(r[2]); return null; } </ script > </ head > < body > < table id="tb" border="1" cellpadding="0" cellspacing="0"> < thead > < tr > < th width="90px;">CustomerID</ th > < th width="240px;">CompanyName</ th > < th width="130px;">ContactName</ th > < th width="140px;">ContactTitle</ th > < th width="205px;">Address</ th > < th width="90px;">City</ th > < th width="50px;">Region</ th > < th width="80px;">PostalCode</ th > < th width="80px;">Country</ th > < th width="95px;">Phone</ th > < th width="95px;">Fax</ th > </ tr > </ thead > < tbody ></ tbody > </ table > < div id="dvPager"></ div > </ body > </ html > |
查看效果
js日期转化
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 | /*格式化时间*/ Date.prototype.format = function (format) { var o = { "M+" : this .getMonth() + 1, //month "d+" : this .getDate(), //day "h+" : this .getHours(), //hour "m+" : this .getMinutes(), //minute "s+" : this .getSeconds(), //second "q+" : Math.floor(( this .getMonth() + 3) / 3), //quarter "S" : this .getMilliseconds() //millisecond } if (/(y+)/.test(format)) format = format.replace(RegExp.$1, ( this .getFullYear() + "" ).substr(4 - RegExp.$1.length)); for ( var k in o) if ( new RegExp( "(" + k + ")" ).test(format)) format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ( "00" + o[k]).substr(( "" + o[k]).length)); return format; } //字符串转化为时间 function getDate(strDate) { if (strDate != null ) { var date = eval( 'new Date(' + strDate.replace(/\d+(?=-[^-]+$)/, function (a) { return parseInt(a, 10) - 1; }).match(/\d+/g) + ')' ); return date; } else { return "" ; } } //js时间比较(yyyy-mm-dd hh:mi:ss) function compareDate(strDate1, strDate2) { var date1 = new Date(strDate1.replace(/\-/g, "\/" )); var date2 = new Date(strDate2.replace(/\-/g, "\/" )); //return date1 - date2; console.info(date1) if (date1 > date2) { return 1; } else { return -1; } } //因为firefox与chome不兼容 //firefox设置时间加1天 function DateNextDay(d2) { //slice返回一个数组 var str = d2.slice(5) + "- " + d2.slice(0, 4); var d = new Date(str); var d3 = new Date(d.getFullYear(), d.getMonth() - 1, d.getDate() + 1); //var month = returnMonth(d3.getMonth()); var month = d3.getMonth(); var day = d3.getDate(); //day = day < 10 ? "0" + day : day; var str2 = d3.getFullYear() + "年" + month + "月" + day + "日" ; return str2; } //chome设置时间加1天 function DateNextDayChome(d2) { //slice返回一个数组 var str = d2.replace( "月" , "/" ); var str1 = str.replace( "日" , "" ).substr(5) + "- " + d2.slice(0, 4); var d = new Date(str1); var d3 = new Date(d.getFullYear(), d.getMonth() - 1, d.getDate() + 1); //var month = returnMonth(d3.getMonth()); var month = d3.getMonth(); var day = d3.getDate(); //day = day < 10 ? "0" + day : day; var str2 = d3.getFullYear() + "年" + month + "月" + day + "月" ; return str2; } //返回月份 function returnMonth(num) { var str = " " ; switch (num) { case 0: str = "01" ; break ; case 1: str = "02" ; break ; case 2: str = "03" ; break ; case 3: str = "04" ; break ; case 4: str = "05" ; break ; case 5: str = "06" ; break ; case 6: str = "07" ; break ; case 7: str = "08" ; break ; case 8: str = "09" ; break ; case 9: str = "10" ; break ; case 10: str = "11" ; break ; case 11: str = "12" ; break ; } return str; } //data.rows[i].BenginTime.getDateByJson("yyyy-MM-dd") String.prototype.getDateByJson = function (format) { var jsondate = this .replace( "/Date(" , "" ).replace( ")/" , "" ); if (jsondate.indexOf( "+" ) > 0) { jsondate = jsondate.substring(0, jsondate.indexOf( "+" )); } else if (jsondate.indexOf( "-" ) > 0) { jsondate = jsondate.substring(0, jsondate.indexOf( "-" )); } return new Date(parseInt(jsondate, 10)).format(format); } |
参考:http://www.cnblogs.com/xiaoafei1991/p/4246662.html 锋利的js前端分页之jQuery
作者:【唐】三三
出处:https://www.cnblogs.com/tangge/p/4286546.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
分类:
ASP.NET MVC
标签:
C#:MVC
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南