zoukankan      html  css  js  c++  java
  • MVC分页

    分页

    首先创建个MyHtmlHelper类:

     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("[{e}]",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());
    
            }
    

      

    要用的时候可以直接调用:例如

    pageSize是每个页面多少条数据。

     public ViewResult Index(int pageIndex = 1, int pageSize = 4)
            {
                ViewData["pageIndex"] = pageIndex;
                ViewData["pageSize"] = pageSize;
                ViewData["total"] = db.news.Count();
    
              
                ViewData.Model = db.news
                    .OrderBy(u => u.NewsID)
                    .Skip(pageSize * (pageIndex - 1))
                    .Take(pageSize).AsEnumerable();
    
                return View();
            }
    

      

    Html:

    @model IEnumerable<MVCNews.Models.news>
    
    @{
    Layout = null;
    }
    
    <!DOCTYPE html>
    
    <html>
    <head>
    <title>Index</title>
    </head>
    <body>
    <p>
    @Html.ActionLink("Create New", "Create")
    </p>
    <table>
    <tr>
    <th>
    subjectname
    </th>
    <th>
    style
    </th>
    <th>
    datatime
    </th>
    <th>
    undertime
    </th>
    <th>
    newsUpdateUser
    </th>
    <th>
    newsAudit
    </th>
    <th>
    newsstyle
    </th>
    <th>
    newslevel
    </th>
    <th>
    stuID
    </th>
    <th></th>
    </tr>
    
    @foreach (var item in Model) {
    <tr>
    <td>
    @Html.DisplayFor(modelItem => item.subjectname)
    </td>
    <td>
    @Html.DisplayFor(modelItem => item.style)
    </td>
    <td>
    @Html.DisplayFor(modelItem => item.datatime)
    </td>
    <td>
    @Html.DisplayFor(modelItem => item.undertime)
    </td>
    <td>
    @Html.DisplayFor(modelItem => item.newsUpdateUser)
    </td>
    <td>
    @Html.DisplayFor(modelItem => item.newsAudit)
    </td>
    <td>
    @Html.DisplayFor(modelItem => item.newsstyle)
    </td>
    <td>
    @Html.DisplayFor(modelItem => item.newslevel)
    </td>
    <td>
    @Html.DisplayFor(modelItem => item.stuID)
    </td>
    <td>
    @Html.ActionLink("Edit", "Edit", new { id=item.NewsID }) |
    @Html.ActionLink("Details", "Details", new { id=item.NewsID }) |
    @Html.ActionLink("Delete", "Delete", new { id=item.NewsID })
    </td>
    </tr>
    }
    
    </table>
    <div id="page">
    @Html.ShowPageNavigate((int)ViewData["pageIndex"],(int)ViewData["pageSize"],(int)ViewData["total"]) 
    </div>
    </body>
    </html>

      

  • 相关阅读:
    npm 之 --save , -D,--save -dev的区别
    webpack 之 打包(最新版)
    npm 与 yarn 对比
    webpack 之 打包图片文件
    webpack 之 打包less文件
    javascript 之 Event Loop
    package.json中type的含义
    webpack 之 打包css文件操作
    常见问题 之 webpack打包css问题
    类方法和对象方法
  • 原文地址:https://www.cnblogs.com/mvpbest/p/13300080.html
Copyright © 2011-2022 走看看