AspNetPager 是 ASP.NET WebForms 經典的分頁控件,透過設定 CssClass(整體容器樣式)與 CurrentPageButtonClass(當前頁碼樣式),即可輕松套用各種視覺風格。本文提供三大知名網站風格的完整 CSS 與屬性配置,可直接複製使用。
首頁 前頁 1 2 3 4 5 6 7 8 9 10 ... 後頁 尾頁
.anpager .cpb {
background: #1F3A87;
border: 1px solid #CCCCCC;
color: #FFFFFF;
font-weight: bold;
margin: 5px 4px 0 0;
padding: 4px 5px 0;
}
.anpager a {
background: #FFFFFF;
border: 1px solid #CCCCCC;
color: #1F3A87;
margin: 5px 4px 0 0;
padding: 4px 5px 0;
text-decoration: none;
}
.anpager a:hover {
background: #1F3A87;
border: 1px solid #1F3A87;
color: #FFFFFF;
}
<webdiyer:AspNetPager ID="AspNetPager1" runat="server"
CssClass="anpager"
CurrentPageButtonClass="cpb"
ShowPageIndexBox="Always"
PageIndexBoxType="TextBox"
... ></webdiyer:AspNetPager>
首頁 上一頁 1 2 3 4 5 6 7 8 9 10 ... 下一頁 尾頁
.paginator {
font: 11px Arial, Helvetica, sans-serif;
padding: 10px 20px 10px 0;
margin: 0px;
}
.paginator a {
padding: 1px 6px;
border: solid 1px #ddd;
background: #fff;
text-decoration: none;
margin-right: 2px;
}
.paginator a:visited {
padding: 1px 6px;
border: solid 1px #ddd;
background: #fff;
text-decoration: none;
}
.paginator .cpb {
padding: 1px 6px;
font-weight: bold;
font-size: 13px;
border: none;
color: #fff;
background: #ffa501;
}
.paginator a:hover {
color: #fff;
background: #ffa501;
border-color: #ffa501;
text-decoration: none;
}
<webdiyer:AspNetPager ID="AspNetPager1" runat="server"
CssClass="paginator"
CurrentPageButtonClass="cpb"
FirstPageText="首頁"
PrevPageText="上一頁"
NextPageText="下一頁"
LastPageText="尾頁"
... ></webdiyer:AspNetPager>
首頁 上一頁 1 2 3 4 5 6 7 8 9 10 ... 下一頁 尾頁
.pages {
color: #999;
}
.pages a, .pages .cpb {
text-decoration: none;
float: left;
padding: 0 5px;
border: 1px solid #ddd;
background: #fff;
margin: 0 2px;
font-size: 11px;
color: #000;
}
.pages a:hover {
background-color: #E61636;
color: #fff;
border: 1px solid #E61636;
text-decoration: none;
}
.pages .cpb {
font-weight: bold;
color: #fff;
background: #E61636;
border: 1px solid #E61636;
}
<webdiyer:AspNetPager ID="AspNetPager1" runat="server"
CssClass="pages"
CurrentPageButtonClass="cpb"
FirstPageText="首頁"
PrevPageText="上一頁"
NextPageText="下一頁"
LastPageText="尾頁"
NumericButtonCount="10"
... ></webdiyer:AspNetPager>
// variables.less
@pager-primary: #1F3A87; // 網易藍
@pager-border: #CCC;
@pager-hover: #1F3A87;
@pager-active-bg: #1F3A87;
@pager-active-color: #FFF;
// 產生對應 CSS 類,切換主題只需改變數
@media (max-width: 480px) {
.anpager .pageIndexBox { display: none; }
.anpager a, .anpager .cpb { padding: 8px 12px; font-size: 14px; } // 增大點擊區域
}
.pagination-custom .page-link {
color: #007bff;
background: #fff;
border: 1px solid #dee2e6;
}
.pagination-custom .page-item.active .page-link {
background: #007bff;
border-color: #007bff;
color: #fff;
}
.pagination-custom .page-link:hover {
background: #e9ecef;
}
// 控件設定
CssClass="pagination pagination-custom"
CurrentPageButtonClass="page-item active"
// 需配合 AspNetPager 模板或 ControlAdapters 調整渲染結構
<webdiyer:AspNetPager ...
FirstPageText="<i class='fas fa-angle-double-left'></i>"
PrevPageText="<i class='fas fa-angle-left'></i>"
NextPageText="<i class='fas fa-angle-right'></i>"
LastPageText="<i class='fas fa-angle-double-right'></i>"
/>
// 需引用 Font Awesome
| 問題 | 原因與解決 |
|---|---|
| 樣式不生效 | 檢查 CSS 選擇器權重,確保 .CssClass a 能匹配控件渲染的 <a> 標籤;瀏覽器開發者工具檢查實際 class。 |
| 當前頁樣式不正確 | 確認 CurrentPageButtonClass 值與 CSS 中類別名完全一致(區分大小寫)。 |
| UpdatePanel 內分頁樣式消失 | 非同步回傳後需重新註冊 CSS 或將 CSS 置於頁面而非 UserControl 內;或在 PageRequestManager endRequest 重新套用。 |
| 頁碼過多版面破版 | 設定 NumericButtonCount 限制顯示頁碼數;或自訂模板只顯示「上一頁/下一頁」。 |
AspNetPager 樣式客製化核心在於:正確設定 CssClass 與 CurrentPageButtonClass,配合精準的 CSS 選擇器。本文提供的三組經典風格(網易藍、拍拍橙、迅雷紅)涵蓋不同品牌調性,可直接套用或作為客製化基礎。結合 Less/Sass 變數化、響應式設計、圖示字體,能快速打造符合現代 UI 規範的分頁體驗。若專案已引入 Bootstrap,建議改用 Bootstrap Pagination 元件並配合 AspNetPager 模板調整渲染結構,維護性更佳。