zoukankan      html  css  js  c++  java
  • MVC EF分页实现

     

    1.Model中分页方法
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Web;
    using System.Web.Mvc;
     
    //命名空间用系统命名空间
    namespace System.Web.Mvc
    {
        public static class MyHtmlHelperExt
        {
            // 传一个字符串过来,我给你封装成一个标签:<span>txt</span> 
            public static string GetLable(this HtmlHelper helper, string txt)
            {
                return string.Format("<span>{0}</span>", txt);
            }
     
     
            // 传一个字符串过来,我给你封装成一个标签:<span>txt</span> 
            public static MvcHtmlString GetMvcHtmlStringLable(this HtmlHelper helper, string txt)
            {
                string str = string.Format("<span>{0}</span>", txt);
                //将上的str 转成   MvcHtmlString
     
                // 创建一个实例:new
                //本类有个静态方法帮我们创建 Create
                //y有个工厂帮我们创建一个实例:HttpApplicationFactory
                //return new MvcHtmlString(str);
     
                //
                return MvcHtmlString.Create(str);
            }
     
            // 传一个字符串过来,我给你封装成一个标签:<span>txt</span> 
            public static HtmlString GetHtmlStringLable(this HtmlHelper helper, string txt)
            {
                string str = string.Format("<span class='laoma'>{0}</span>", txt);
                //将上的str 转成   MvcHtmlString
     
                // 创建一个实例:new
                //本类有个静态方法帮我们创建 Create
                //y有个工厂帮我们创建一个实例:HttpApplicationFactory
                //return new MvcHtmlString(str);
     
                //
                //return MvcHtmlString.Create(str);
     
                return new HtmlString(str);
            }
     
     
     
            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={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.Append(string.Format("[{0}]", currentPage));
                                output.AppendFormat("<a class='cpb' href='{0}?pageIndex={1}&pageSize={2}'>{3}</a> ", redirectTo, currentPage, pageSize, currentPage);
                            }
                            else
                            {//一般页处理
                                output.AppendFormat("<a class='pageLink' 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("<span class='pageLink'>下一页</span>");
                    }
                    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());
            }
        }
    }
     
     
    2.控制器中写法
     
            Entities db = new Entities();
            public ActionResult Index()
            {
                var pageIndex = this.Request["pageIndex"] == null ? 1 : int.Parse(this.Request["pageIndex"]);
                var pageSize = this.Request["pageSize"] == null ? 10 : int.Parse(this.Request["pageSize"]);
                var total = db.yxs_orders.Count();
     
                ViewData["pageIndex"] = pageIndex;
                ViewData["pageSize"] = pageSize;
                ViewData["total"] = total;
     
                ViewData.Model = db.yxs_orders.OrderBy<yxs_ordersint>(u => u.Id)
                    .Skip((pageIndex - 1) * pageSize)
                    .Take(pageSize);
                return View();
            }
     
     
    3.前台调用
    <div class="paginator"><%:Html.ShowPageNavigate((int)ViewData["pageIndex"],(int)ViewData["pageSize"],(int)ViewData["total"]) %></div>
     
    4.样式
    .paginator
    {
        font12px ArialHelveticasans-serif;
        padding10px 20px 10px 0;
        margin0px;
    }
     
    .paginator a
    {
        bordersolid 1px #ccc;
        color#0063dc;
        cursorpointer;
        text-decorationnone;
    }
     
    .paginator a:visited
    {
        padding1px 6px;
        bordersolid 1px #ddd;
        background#fff;
        text-decorationnone;
    }
     
    .paginator .cpb
    {
        border1px solid #F50;
        font-weight700;
        color#F50;
        background-color#ffeee5;
    }
     
    .paginator a:hover
    {
        bordersolid 1px #F50;
        color#f60;
        text-decorationnone;
    }
     
    .paginator a.paginator a:visited.paginator .cpb.paginator a:hover
    {
        floatleft;
        height16px;
        line-height16px;
        min-width10px;
        _width10px;
        margin-right5px;
        text-aligncenter;
        white-spacenowrap;
        font-size12px;
        font-familyArial,SimSun;
        padding0 3px;
    }
  • 相关阅读:
    web页面与多页应用(布局示例普通文档流)
    web页面与多页应用(一)
    Flutter,webview里面实现上传和下载的功能
    Flutter项目删除了相关的dart文件之后运行flutter run或者 F5编译运行时会报这个错误.... were declared as an inputs, but did not exist. Check the definition of target:kernel_snapshot for errors
    vue项目中,点击输入框的时候,弹出的键盘挡住了输入框,需要把输入框展示在可见区域中,不被遮挡
    在IE浏览器上,min-hheight:unset/line-hight:unset不生效问题解决,把unset换成auto,问题只要时IE浏览器设置unset不生效
    本人修改了,需要把新的AndroidManifest.xml 覆盖原来的,AndroidManifest.xml 覆盖问题
    使用Filter来过滤掉需要排除的数组对象
    深拷贝和浅拷贝
    正则表达式
  • 原文地址:https://www.cnblogs.com/jiayue360/p/3166947.html
Copyright © 2011-2022 走看看