MVC生成頁碼選擇器返回HTML代碼詳解
更新時間:2017年08月30日 13:58:37 作者:隨緣
這篇文章主要為大家詳細介紹了MVC生成頁碼選擇器返回HTML代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
我主要講此代碼用于MVC的分布頁。
先看最終效果最終效果:






樣式為bootstrap3中的分頁“pagination”,如果不使用bootstrap單獨提出來并不大
頁碼生成代碼為:
public string GetPaginationHtml(PaginationViewModel p)
{
var PageNum = p.Page;//當前頁碼(頁碼從1開始)
var PageCount = p.PageCount;//總頁數(shù)
var ItemCount = p.ItemCount;//總條數(shù)
var showPageNum = 6;//顯示數(shù)字的頁面數(shù)量
var html = new StringBuilder();
html.Append(string.Format("<ul class='pagination' id='{0}' data-data='{1}'>", p.ULID, p.Data));//ULID和Data是方便在前臺增加事件用的
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);//第一個開始顯示數(shù)字的頁碼
//上一頁按鈕
html.Append(string.Format("<li class='{0}'><a href='#' class='js-pageSelect' data-page='{1}'><span>上一頁</span></a></li>", PageNum <= 1 ? "disabled" : "", PageNum - 1));
if (startPage > 1)//生成第一頁按鈕和中間省略號
{
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++)//生成頁碼
{
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));
}
//生成最后一頁按鈕和中間省略號
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));
}
//顯示下一頁按鈕
html.Append(string.Format("<li class='{0}'><a href='#' class='js-pageSelect' data-page='{1}'><span>下一頁</span></a></li>", PageNum >= PageCount ? "disabled" : "", PageNum + 1));
//顯示頁碼信息
html.Append(string.Format("<li><span>第{0}頁 共{1}頁{2}條內容</span></li>", PageNum, PageCount, ItemCount));
}
else
{
//內容不足一頁時顯示的內容
html.Append(string.Format("<li><span>共1頁{0}條內容</span></li>", ItemCount));
}
return html.ToString();
}
用的時候直接放到MVC Controllers 中ActionResult 返回Content(html)。
頁面中可以直接
@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();
});
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- Java簡單實現(xiàn)SpringMVC+MyBatis分頁插件
- ASP.NET MVC 5使用X.PagedList.Mvc進行分頁教程(PagedList.Mvc)
- MVC+jQuery.Ajax異步實現(xiàn)增刪改查和分頁
- MVC分頁之MvcPager使用詳解
- SpringMvc+Mybatis+Pagehelper分頁詳解
- 超好用輕量級MVC分頁控件JPager.Net
- springmvc 分頁查詢的簡單實現(xiàn)示例代碼
- 基于SpringMVC+Bootstrap+DataTables實現(xiàn)表格服務端分頁、模糊查詢
- ASP.NET MVC4 HtmlHelper擴展類,實現(xiàn)分頁功能
- ASP.NET MVC分頁和排序功能實現(xiàn)
相關文章
Visual Studio 2010崩潰重啟問題(源文件編譯崩潰)
在使用Visual Studio 2010突然出現(xiàn)崩潰現(xiàn)象:源文件修改只要一編譯,馬上就崩潰.搜索了很多的方法也不見效果,經過近1天的折騰,已經決定重裝Windows 7了,遇到此問題的朋友們可以看看哦,或許對你有所幫助2013-01-01
asp.net DataList與Repeater用法區(qū)別
Repeater比DataList要好一些,如果不是很大數(shù)據(jù)量的話,這點差別是體現(xiàn)不來的。2009-12-12
js實現(xiàn)網頁防止被iframe框架嵌套及幾種location.href的區(qū)別
首先我們了解一下幾種location.href的區(qū)別簡單的說:幾種location.href的區(qū)別js實現(xiàn)網頁被iframe框架功能,感興趣的朋友可以了解下2013-08-08
VB.net 查詢獲取數(shù)據(jù)庫數(shù)據(jù)信息
VB.net 查詢獲取數(shù)據(jù)庫數(shù)據(jù)信息實現(xiàn)函數(shù),需要的朋友可以參考下,代碼比較簡單。2009-07-07
asp.net 1.1/ 2.0 中快速實現(xiàn)單點登陸
asp.net 1.1/ 2.0 中快速實現(xiàn)單點登陸...2007-04-04

