MVC生成頁(yè)碼選擇器返回HTML代碼詳解
我主要講此代碼用于MVC的分布頁(yè)。
先看最終效果最終效果:
樣式為bootstrap3中的分頁(yè)“pagination”,如果不使用bootstrap單獨(dú)提出來(lái)并不大
頁(yè)碼生成代碼為:
public string GetPaginationHtml(PaginationViewModel p) { var PageNum = p.Page;//當(dāng)前頁(yè)碼(頁(yè)碼從1開(kāi)始) var PageCount = p.PageCount;//總頁(yè)數(shù) var ItemCount = p.ItemCount;//總條數(shù) var showPageNum = 6;//顯示數(shù)字的頁(yè)面數(shù)量 var html = new StringBuilder(); html.Append(string.Format("<ul class='pagination' id='{0}' data-data='{1}'>", p.ULID, p.Data));//ULID和Data是方便在前臺(tái)增加事件用的 if (PageCount > 1) { var startPage = 1; if (showPageNum > PageCount) { startPage = 1; } else { if (PageNum - (showPageNum / 2) <= 0) { startPage = 1; } else if (PageNum + (showPageNum / 2) >= PageCount) { startPage = PageCount - showPageNum; } else { startPage = PageNum - (showPageNum / 2); } } startPage = (startPage == 0 ? 1 : startPage);//第一個(gè)開(kāi)始顯示數(shù)字的頁(yè)碼 //上一頁(yè)按鈕 html.Append(string.Format("<li class='{0}'><a href='#' class='js-pageSelect' data-page='{1}'><span>上一頁(yè)</span></a></li>", PageNum <= 1 ? "disabled" : "", PageNum - 1)); if (startPage > 1)//生成第一頁(yè)按鈕和中間省略號(hào) { html.Append("<li><a class='js-pageSelect'' href='#' data-page='1'>1</a></li>"); if (startPage > 2) { html.Append("<li><span>...</span></li>"); } } for (int i = startPage; i <= (startPage + showPageNum); i++)//生成頁(yè)碼 { if (i > PageCount) { break; } html.Append(string.Format("<li class='{0}'><a class='js-pageSelect'' href='#' data-page='{1}'>{2}</a></li>", i == PageNum ? "active" : "", i, i)); } //生成最后一頁(yè)按鈕和中間省略號(hào) int maxShowPage = startPage + showPageNum; if (maxShowPage <= PageCount - 1) { if(maxShowPage <= PageCount - 2) { html.Append("<li><span>...</span></li>"); } html.Append(string.Format("<li><a class='js-pageSelect'' href='#' data-page='{0}'>{1}</a></li>",PageCount,PageCount)); } //顯示下一頁(yè)按鈕 html.Append(string.Format("<li class='{0}'><a href='#' class='js-pageSelect' data-page='{1}'><span>下一頁(yè)</span></a></li>", PageNum >= PageCount ? "disabled" : "", PageNum + 1)); //顯示頁(yè)碼信息 html.Append(string.Format("<li><span>第{0}頁(yè) 共{1}頁(yè){2}條內(nèi)容</span></li>", PageNum, PageCount, ItemCount)); } else { //內(nèi)容不足一頁(yè)時(shí)顯示的內(nèi)容 html.Append(string.Format("<li><span>共1頁(yè){0}條內(nèi)容</span></li>", ItemCount)); } return html.ToString(); }
用的時(shí)候直接放到MVC Controllers 中ActionResult 返回Content(html)。
頁(yè)面中可以直接
@Html.Action("", new {page = 1,pageSize = 20, ... })
也可以
$.ajax({ url: '/Function/FileArchiveSelectShouWenDengJiTableMessage', type: 'post', dataType: 'html', data: { page: page, pageSize: pagesize, ... }, }) .done(function (data) { $('#ShouWenPageSelect').html(data); InitPageSelectEvent(); });
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Java簡(jiǎn)單實(shí)現(xiàn)SpringMVC+MyBatis分頁(yè)插件
- ASP.NET MVC 5使用X.PagedList.Mvc進(jìn)行分頁(yè)教程(PagedList.Mvc)
- MVC+jQuery.Ajax異步實(shí)現(xiàn)增刪改查和分頁(yè)
- MVC分頁(yè)之MvcPager使用詳解
- SpringMvc+Mybatis+Pagehelper分頁(yè)詳解
- 超好用輕量級(jí)MVC分頁(yè)控件JPager.Net
- springmvc 分頁(yè)查詢(xún)的簡(jiǎn)單實(shí)現(xiàn)示例代碼
- 基于SpringMVC+Bootstrap+DataTables實(shí)現(xiàn)表格服務(wù)端分頁(yè)、模糊查詢(xún)
- ASP.NET MVC4 HtmlHelper擴(kuò)展類(lèi),實(shí)現(xiàn)分頁(yè)功能
- ASP.NET MVC分頁(yè)和排序功能實(shí)現(xiàn)
相關(guān)文章
asp.net中eval不能定義變量的問(wèn)題的解決方法
eval不能定義變量的問(wèn)題該怎么辦,下面有個(gè)不錯(cuò)的解決方法,大家可以參考下2013-12-12.NET中的MassTransit分布式應(yīng)用框架詳解
MassTransit是一款優(yōu)秀的分布式應(yīng)用框架,可作為分布式應(yīng)用的消息總線(xiàn),也可以用作單體應(yīng)用的事件總線(xiàn),這篇文章主要介紹了.NET中的MassTransit分布式應(yīng)用框架,需要的朋友可以參考下2022-10-10Visual Studio 2010崩潰重啟問(wèn)題(源文件編譯崩潰)
在使用Visual Studio 2010突然出現(xiàn)崩潰現(xiàn)象:源文件修改只要一編譯,馬上就崩潰.搜索了很多的方法也不見(jiàn)效果,經(jīng)過(guò)近1天的折騰,已經(jīng)決定重裝Windows 7了,遇到此問(wèn)題的朋友們可以看看哦,或許對(duì)你有所幫助2013-01-01asp.net DataList與Repeater用法區(qū)別
Repeater比DataList要好一些,如果不是很大數(shù)據(jù)量的話(huà),這點(diǎn)差別是體現(xiàn)不來(lái)的。2009-12-12asp.net基礎(chǔ)學(xué)習(xí)之前端頁(yè)面布局
這篇文章主要為大家詳細(xì)介紹了asp.net基礎(chǔ)學(xué)習(xí)之前端頁(yè)面布局,什么是母版頁(yè),如何創(chuàng)建母版頁(yè),感興趣的小伙伴們可以參考一下2016-08-08js實(shí)現(xiàn)網(wǎng)頁(yè)防止被iframe框架嵌套及幾種location.href的區(qū)別
首先我們了解一下幾種location.href的區(qū)別簡(jiǎn)單的說(shuō):幾種location.href的區(qū)別js實(shí)現(xiàn)網(wǎng)頁(yè)被iframe框架功能,感興趣的朋友可以了解下2013-08-08VB.net 查詢(xún)獲取數(shù)據(jù)庫(kù)數(shù)據(jù)信息
VB.net 查詢(xún)獲取數(shù)據(jù)庫(kù)數(shù)據(jù)信息實(shí)現(xiàn)函數(shù),需要的朋友可以參考下,代碼比較簡(jiǎn)單。2009-07-07asp.net 1.1/ 2.0 中快速實(shí)現(xiàn)單點(diǎn)登陸
asp.net 1.1/ 2.0 中快速實(shí)現(xiàn)單點(diǎn)登陸...2007-04-04ASP.NET技巧:請(qǐng)求網(wǎng)址并解析返回的html
ASP.NET技巧:請(qǐng)求網(wǎng)址并解析返回的html...2006-09-09