<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        MVC HtmlHelper擴展類(PagingHelper)實現分頁功能

        來源:懂視網 責編:小采 時間:2020-11-27 22:35:43
        文檔

        MVC HtmlHelper擴展類(PagingHelper)實現分頁功能

        MVC HtmlHelper擴展類(PagingHelper)實現分頁功能:MVC HtmlHelper擴展類PagingHelper實現分頁功能,供大家參考,具體內容如下 using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using System.T
        推薦度:
        導讀MVC HtmlHelper擴展類(PagingHelper)實現分頁功能:MVC HtmlHelper擴展類PagingHelper實現分頁功能,供大家參考,具體內容如下 using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using System.T

        MVC HtmlHelper擴展類PagingHelper實現分頁功能,供大家參考,具體內容如下

        using System;
        using System.Collections.Generic;
        using System.Collections.Specialized;
        using System.Linq;
        using System.Text;
        using System.Web;
        using System.Web.Mvc;
        using System.Web.Routing;
        
        namespace HtmlHelperMvc.Models
        {
         /// <summary>
         /// 分頁類如果一個頁面顯示兩個列表只需要復制該類到項目中重命名一個就可以
         /// </summary>
         public static class PagingHelper
         {
         #region 屬性Property
         /// <summary>
         /// 當前頁碼
         /// </summary>
         private static int? _currentPage = null;
         /// <summary>
         /// 當前頁碼
         /// </summary>
         public static int CurrentPage
         {
         get
         {
         return _currentPage ?? 1;
         }
         set
         {
         _currentPage = value;
         }
         }
         /// <summary>
         /// 每頁記錄條數
         /// </summary>
         private static int? _pageSize = null;
         /// <summary>
         /// 每頁記錄條數
         /// </summary>
         public static int PageSize
         {
         get
         {
         return _pageSize ?? 15;
         }
         set
         {
         _pageSize = value;
         }
         }
         /// <summary>
         /// 是否顯示上一頁
         /// </summary>
         public static bool HasPreviousPage
         {
         get
         {
         return (CurrentPage > 1);
         }
         }
         /// <summary>
         /// 是否顯示下一頁
         /// </summary>
         public static bool HasNextPage
         {
         get
         {
         return (CurrentPage < TotalPages);
         }
         }
         /// <summary>
         /// 當前頁:
         /// </summary>
         public static string CurrentPageDisplayName { get; set; }
         /// <summary>
         /// 每頁顯示:
         /// </summary>
         public static string PageSizeDisplayName { get; set; }
         public static string FirstDisplayName { get; set; }
         public static string PreDisplayName { get; set; }
         public static string NextDisplayName { get; set; }
         public static string LastDisplayName { get; set; }
         public static string TotalCountDisplayName { get; set; }
         public static string TotalPagesDisplayName { get; set; }
         /// <summary>
         /// 總條數
         /// </summary>
         public static int TotalCount
         {
         get;
         set;
         }
         public static int TotalPages
         {
         get
         {
         return (int)Math.Ceiling(TotalCount / (double)PageSize);
         //return (TotalCount % PageSize == 0 ? TotalCount / PageSize : TotalCount / PageSize + 1);
         }
         }
         /// <summary>
         /// 設置分頁url eg:/Admin/Product/Index
         /// </summary>
         public static string PagingUrl
         {
         get;
         set;
         }
         /// <summary>
         /// 默認page,設置分頁參數名 eg:/Admin/Product/Index?PagingParamName=1
         /// </summary>
         public static string PagingParamName
         {
         get;
         set;
         }
         #endregion
         #region Paging String
         /// <summary>
         /// MVC分頁 如果用jquery分頁只需要class不需要href,用以下實現:
         /// $(".class值").live("click", function () {
         /// var page = $(this).attr("pagingParamName值");
         /// $("#order").html("").load("/Customer/Order?page="+page);
         /// });live自動給遍歷增加事件
         /// </summary>
         /// <param name="html"></param>
         /// <param name="htmlAttributes">new {@class="grey",pagingParamName="page",href="/Admin/Product/Index" rel="external nofollow" } pagingParamName默認page,匿名類添加控件屬性</param>
         /// <returns></returns>
         public static MvcHtmlString Paging(this System.Web.Mvc.HtmlHelper html, object htmlAttributes)
         {
         RouteValueDictionary values = new RouteValueDictionary(htmlAttributes);
         #region 屬性賦值
         if (values["href"] != null)
         {
         PagingUrl = values["href"].ToString();
         }
         if (values["pagingParamName"] != null)
         {
         PagingParamName = values["pagingParamName"].ToString();
         values.Remove("pagingParamName");
         }
         else
         {
         PagingParamName = "page";
         }
         #endregion
         #region 分頁最外層div/span
         TagBuilder builder = new TagBuilder("div");//span
         //創建Id,注意要先設置IdAttributeDotReplacement屬性后再執行GenerateId方法. 
         //builder.IdAttributeDotReplacement = "_";
         //builder.GenerateId(id);
         //builder.AddCssClass("");
         //builder.MergeAttributes(values);
         builder.InnerHtml = PagingBuilder(values);
         #endregion
         return MvcHtmlString.Create(builder.ToString(TagRenderMode.Normal));//解決直接顯示html標記
         }
         private static string PagingBuilder(RouteValueDictionary values)
         {
         #region 條件搜索時包括其他參數
         StringBuilder urlParameter = new StringBuilder();
         NameValueCollection collection = HttpContext.Current.Request.QueryString;
         string[] keys = collection.AllKeys;
         for (int i = 0; i < keys.Length; i++)
         {
         if (keys[i].ToLower() != "page")
         {
         urlParameter.AppendFormat("&{0}={1}", keys[i], collection[keys[i]]);
         }
         }
         #endregion
         //CurrentPage = Convert.ToInt32(HttpContext.Current.Request.QueryString["page"] ?? "0");
         StringBuilder sb = new StringBuilder();
         #region 分頁統計
         sb.AppendFormat("Total  {0}   Records Page  {1} of  {2}   ", TotalCount, CurrentPage, TotalPages);
         #endregion
         #region 首頁 上一頁
         sb.AppendFormat(TagBuilder(values, 1, " First"));
         //sb.AppendFormat("<a href={0}?page=1{1}>First</a> ",url,urlParameter);
         if (HasPreviousPage)
         {
         sb.AppendFormat(TagBuilder(values, CurrentPage - 1, " Prev "));
         //sb.AppendFormat("<a href={0}?page={1}{2}>Prev</a> ", url, CurrentPage - 1, urlParameter);
         }
         #endregion
         #region 分頁邏輯
         if (TotalPages > 10)
         {
         if ((CurrentPage + 5) < TotalPages)
         {
         if (CurrentPage > 5)
         {
         for (int i = CurrentPage - 5; i <= CurrentPage + 5; i++)
         {
         sb.Append(TagBuilder(values, i, i.ToString()));
         }
         }
         else
         {
         for (int i = 1; i <= 10; i++)
         {
         sb.Append(TagBuilder(values, i, i.ToString()));
         }
         }
         sb.Append("... ");
         }
         else
         {
         for (int i = CurrentPage - 10; i <= TotalPages; i++)
         {
         sb.Append(TagBuilder(values, i, i.ToString()));
         }
         }
         }
         else
         {
         for (int i = 1; i <= TotalPages; i++)
         {
         sb.Append(" " + TagBuilder(values, i, i.ToString()) + " ");
         }
         }
         #endregion
         #region 下一頁 末頁
         if (HasNextPage)
         {
         sb.AppendFormat(TagBuilder(values, CurrentPage + 1, "Next"));
         //sb.AppendFormat("<a href={0}?page={1}{2}>Next</a> ", url, CurrentPage + 1, urlParameter);
         }
         sb.AppendFormat(TagBuilder(values, TotalPages, "Last"));
         //sb.AppendFormat("<a href={0}?page={1}{2}>Last</a>",url,TotalPages,urlParameter);
         #endregion
         return sb.ToString();
         }
         private static string TagBuilder(RouteValueDictionary values, int i, string innerText)
         {
         values[PagingParamName] = i;
         TagBuilder tag = new TagBuilder("a");
         if (PagingUrl != null)
         {
         values["href"] = PagingUrl + "?" + PagingParamName + "= " + i + "   ";
         }
         if (CurrentPage == i && innerText != " First" && innerText != " Last")
         {
         values["id"] = "on";
         }
         else
         {
         tag.Attributes["id"] = "";
         }
         tag.MergeAttributes(values);
         tag.SetInnerText(innerText);
         return tag.ToString();
         }
         #endregion
         }
        }
        
        

        后臺Controller代碼

        //
        // GET: /Home/
        
        public ActionResult Index(int? page)
        {
         page = page ?? 1;
         PagingHelper.CurrentPage = Convert.ToInt32(page);
         PagingHelper.PageSize = 20;
        
         //{獲取數據集的中條數,以及分頁的數據集}
        
         PagingHelper.TotalCount = 2000;
         return View();
        }
        
        

        前臺頁面代碼

        @{
         ViewBag.Title = "Index";
        }
        @using HtmlHelperMvc.Models;
        <h2>Index</h2>
        <hr />
        <style type="text/css">
         #on
         {
         color: #FFF;
         background-color: #337AB7;
         border-color: #337AB7;
         }
        
         .pagination a
         {
         margin-right: 3px;
         padding: 5px 10px;
         font-size: 12px;
         text-decoration: none;
         background-color: #fff;
         border: 1px solid #ddd;
         cursor: pointer;
         display: inline-block;
         border-radius: 3px;
         }
        
         a
         {
         color: #337ab7;
         text-decoration: none;
         }
        
         a
         {
         background-color: transparent;
         }
        
         *
         {
         -webkit-box-sizing: border-box;
         -moz-box-sizing: border-box;
         box-sizing: border-box;
         }
        </style>
        <script src="~/Scripts/jquery-1.8.2.js"></script>
        <script type="text/javascript">
         $(function () {
         $(".pagination .active").live("click", function () {
         $("#page").val($(this).attr("page"));
         $("#form_Submit").submit();
         });
         });
        </script>
        <form id="form_Submit" action="/Home/Index" method="post">
         <div class="fix">
         <div class="page">
         <div class="pagination pagination-sm pull-right" id="pageDiv" style="margin: 0px 0;">
         <input type="hidden" id="page" name="page" value="@PagingHelper.CurrentPage" />
         @Html.Paging(new { @class = "active" })
         </div>
         </div>
         </div>
        </form>
        
        

        最終效果圖:

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        MVC HtmlHelper擴展類(PagingHelper)實現分頁功能

        MVC HtmlHelper擴展類(PagingHelper)實現分頁功能:MVC HtmlHelper擴展類PagingHelper實現分頁功能,供大家參考,具體內容如下 using System; using System.Collections.Generic; using System.Collections.Specialized; using System.Linq; using System.T
        推薦度:
        標簽: page mvc 分頁類
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 久久国产乱子伦精品免费午夜 | AV片在线观看免费| 四虎成人免费网址在线| 亚洲无码视频在线| 亚洲制服丝袜一区二区三区| 五月天婷婷免费视频| 黄色成人网站免费无码av| 亚洲日日做天天做日日谢| 久99久精品免费视频热77| 亚洲第一永久AV网站久久精品男人的天堂AV | 日韩精品亚洲人成在线观看| 香港特级三A毛片免费观看| 1000部拍拍拍18勿入免费视频软件| 亚洲精品黄色视频在线观看免费资源| 亚洲日本国产精华液| 亚洲免费人成在线视频观看| 亚洲国产成人VA在线观看| av片在线观看永久免费| 国产99视频免费精品是看6| 亚洲人成在久久综合网站| 欧美在线看片A免费观看| 色偷偷噜噜噜亚洲男人| 暖暖免费高清日本中文| 国产成人精品日本亚洲专| 91精品免费高清在线| 久久精品国产精品亚洲艾草网| 性生大片视频免费观看一级| 亚洲va无码专区国产乱码| 国产大片线上免费观看| 亚洲欧洲日产国产最新| 国产美女做a免费视频软件| 亚洲经典千人经典日产| 精品国产免费一区二区| 亚洲免费福利在线视频| 吃奶摸下高潮60分钟免费视频| 亚洲GV天堂无码男同在线观看| 国产精品xxxx国产喷水亚洲国产精品无码久久一区| 国产高潮久久免费观看| 久久精品国产亚洲AV久| 亚洲免费在线视频观看| 一区二区三区精品高清视频免费在线播放 |