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開始)
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è)開始顯示數(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è)查詢的簡(jiǎn)單實(shí)現(xiàn)示例代碼
- 基于SpringMVC+Bootstrap+DataTables實(shí)現(xiàn)表格服務(wù)端分頁(yè)、模糊查詢
- ASP.NET MVC4 HtmlHelper擴(kuò)展類,實(shí)現(xiàn)分頁(yè)功能
- ASP.NET MVC分頁(yè)和排序功能實(shí)現(xiàn)
相關(guān)文章
ASP.NET數(shù)據(jù)綁定之DataList控件實(shí)戰(zhàn)篇
這篇文章主要為大家介紹了ASP.NET數(shù)據(jù)綁定中的DataList控件,DataList控件以表的形式呈現(xiàn)數(shù)據(jù),通過(guò)該控件,您可以使用不同的布局來(lái)顯示數(shù)據(jù)記錄,對(duì)DataList控件感興趣的小伙伴們可以參考一下2016-01-01
asp.net正則表達(dá)式刪除指定的HTML標(biāo)簽的代碼
抓取某網(wǎng)頁(yè)的數(shù)據(jù)后(比如描述),如果照原樣顯示的話,可能會(huì)因?yàn)樗锩姘瑳]有閉合的HTML標(biāo)簽而打亂了格式,也可能它里面用了比較讓人 費(fèi)解 的HTML標(biāo)簽,把預(yù)訂的格式攪亂.2010-09-09
.Net中MoongoDB的簡(jiǎn)單調(diào)用圖文教程
這篇文章主要給大家介紹了關(guān)于.Net中MoongoDB的簡(jiǎn)單調(diào)用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-10-10
Entity?Framework根據(jù)實(shí)體的EntityState狀態(tài)實(shí)現(xiàn)增刪改查
這篇文章介紹了Entity?Framework根據(jù)實(shí)體的EntityState狀態(tài)實(shí)現(xiàn)增刪改查,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
.NET 解決TabControl 頁(yè)里面多余邊距問(wèn)題經(jīng)驗(yàn)分享
不知道各位同學(xué)有沒有遇到在向TabPage添加內(nèi)容后,里面的東西總是填不滿 TabPage,總是有幾個(gè)像素的空白邊距2012-04-04
ASP.NET導(dǎo)出Excel打開時(shí)提示:與文件擴(kuò)展名指定文件不一致解決方法
ASP.NET導(dǎo)出Excel,打開時(shí)提示“您嘗試打開文件'XXX.xls'的格式與文件擴(kuò)展名指定文件不一致” 很是郁悶,于是搜集了一些解決方法,感興趣的朋友可以了解下2013-01-01
DAM 簡(jiǎn)單跨數(shù)據(jù)庫(kù)ADO.NET組件
這是一個(gè)可以實(shí)現(xiàn)簡(jiǎn)單跨數(shù)據(jù)庫(kù)基于ADO.NET的組件。您可以在DAL層透過(guò)它來(lái)訪問(wèn)數(shù)據(jù)庫(kù)。這是一個(gè)以前寫過(guò)一個(gè)小組件的修改版.2011-01-01
asp.net使用npoi讀取excel模板并導(dǎo)出下載詳解
這篇文章主要介紹了asp.net使用npoi讀取excel模板并導(dǎo)出下載的示例,大家參考使用吧2014-01-01

