1. 程式人生 > >【菜鳥看框架】——MVC+EF實現分頁

【菜鳥看框架】——MVC+EF實現分頁

    public static HtmlString ShowPageNavigate(this HtmlHelper htmlHelper, int currentPage, int pageSize, int totalCount)  
    {  
        var redirectTo = htmlHelper.ViewContext.RequestContext.HttpContext.Request.Url.AbsolutePath;  
        pageSize = pageSize == 0 ? 3 : pageSize;  
        var totalPages = Math.Max((totalCount + pageSize - 1) / pageSize, 1);//總頁數  
        var output = new StringBuilder();  
        if (totalPages > 1)  
        {  
            //if (currentPage!=1)  
            {//處理首頁連線  
                output.AppendFormat("<a class='pageLink' href='{0}?pageIndex=1&pageSize={1}'>首頁</a>", redirectTo, pageSize);  
                
            }  
            if (currentPage > 1)  
            {//處理上一頁的連線  
                output.AppendFormat("<a class='pageLink' href='{0}?pageIndex=1&pageSize={1}&pageSize={2}'>上一頁</a>", redirectTo, currentPage - 1, pageSize);  
            }  
            else  
            {  
                //output.Append("<span class='pageLink'>上一頁</span>");  
            }  
            output.Append(" ");  
            int currint = 5;  
            for (int i = 0; i < 10; i++)  
            {//一共最多系那是10個頁碼,前面5個後面5個  
                if ((currentPage + i -currint) >= 1 && (currentPage + i - currint)<=totalPages)  
                {  
                    if (currint==i)  
                 {//當前頁處理  
                        output.AppendFormat("<a class='cpb' href='{0}?pageIndex={1} & pageSize={2}'>{3}</a>",redirectTo,currentPage,pageSize,currentPage);  
      
      
                 }  
                    else  
                    {//一般頁處理  
                        output.AppendFormat("<a class='cpb' href='{0}?pageIndex={1} & pageSize={2}'>{3}</a>", redirectTo, currentPage + i - currint, pageSize, currentPage + i - currint);  
                    }  
                }  
                output.Append(" ");  
            }  
            if (currentPage < totalPages)  
            {//處理下一頁的連線  
                output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1} & pageSize={2}'>下一頁</a>", redirectTo, currentPage + 1, pageSize);  
            }  
            else  
            {  
      
            }  
            output.Append(" ");  
            if (currentPage!=totalPages)  
            {  
                 output.AppendFormat("<a class='pageLink' href='{0}?pageIndex={1} & pageSize={2}'>末頁</a>", redirectTo, totalPages, pageSize);  
            }  
            output.Append(" ");  
        }  
        output.AppendFormat("第{0}頁 / 共{1}頁", currentPage, totalPages);//這個統計加不加都行  
        return new HtmlString(output.ToString());  
    }  
二、分頁顯示的樣式程式碼
    <style type ="text/css">  
        .paginator {  
            font:12px Arial,Helvetica,sans-serif;  
            padding:10px 20px 10px 0;  
            margin:0px;  
      
        }  
            .paginator a {  
                border:solid 1px #ccc;  
                color:#0063dc;  
                cursor:pointer;  
                text-decoration:none;  
            }  
                .paginator a:visited {  
                    padding:1px 6px;  
                    border:solid 1px #ddd;  
                    background:#fff;  
                    text-decoration:none;                
                }  
            .paginator .cpb {     
                border:1px solid #F50;  
                font-weight:700;  
                color:#F50;  
                background-color:#ffeee5;  
              
            }  
            .paginator a:hover {  
                border:solid 1px #F50;  
                color:#f60;  
                text-decoration:none;  
            }  
            .paginator a, .paginator a:visited, .paginator .cpb, .paginator a:hover {  
                float:left;  
                height:16px;  
                line-height:16px;  
                min-width:10px;  
                _width:10px;  
                margin-right:5px;  
                text-align:center;  
                white-space:nowrap;  
                font-size:12px;  
                font-family:Arialm,SimSun;  
                padding:0 3px;  
              
            }  
    </style>  


三、View層程式碼