设为首页 加入收藏

TOP

学习ASP.NET Core Razor 编程系列十九——分页(一)
2019-09-17 18:24:48 】 浏览:64
Tags:学习 ASP.NET Core Razor 编程 系列 十九 —分页

学习ASP.NET Core Razor 编程系列目录

学习ASP.NET Core Razor 编程系列一

学习ASP.NET Core Razor 编程系列二——添加一个实体

 学习ASP.NET Core Razor 编程系列三——创建数据表及创建项目基本页面

学习ASP.NET Core Razor 编程系列四——Asp.Net Core Razor列表模板页面

学习ASP.NET Core Razor 编程系列五——Asp.Net Core Razor新建模板页面

学习ASP.NET Core Razor 编程系列六——数据库初始化

学习ASP.NET Core Razor 编程系列七——修改列表页面

学习ASP.NET Core Razor 编程系列八——并发处理

学习ASP.NET Core Razor 编程系列九——增加查询功能

 学习ASP.NET Core Razor 编程系列十——添加新字段

学习ASP.NET Core Razor 编程系列十一——把新字段更新到数据库

学习ASP.NET Core Razor 编程系列十二——在页面中增加校验

学习ASP.NET Core Razor 编程系列十三——文件上传功能(一)

学习ASP.NET Core Razor 编程系列十四——文件上传功能(二)

学习ASP.NET Core Razor 编程系列十五——文件上传功能(三)

学习ASP.NET Core Razor 编程系列十六——排序

 学习ASP.NET Core Razor 编程系列十七——分组

学习ASP.NET Core Razor 编程系列十八——并发解决方案

 

    通过前面的教程学习,你可以实现一个简单的书籍管理系统。 在本教程将向书籍索引页中添加分页功能。

    一、向书籍列表页添加分页功能

    为了向书籍列表页添加分页功能,你需要安装X.PagedList.Core.Mvc

    首先,我们需要安装分页组件包,在Visual Studio 2017中点击【项目】-【管理NuGet程序包】,打开NuGet包管理器窗体。

     其次,在NuGet包管理器窗体中,选择“浏览”标签,然后搜索X.PagedList,如下图所示。点击“安装”按钮安装X.PagedList.Core.Mvc的最新版本(本文中安装的版本为7.5.0)。

    第三, Nuget会下载X.PagedList.Mvc.Core包,并会弹出一个“更改”对话框,点击“确定”按钮。

     第四,在把PagedList.Mvc安装完成之后,PagedList包也被安装上了。如下图。

        把PagedList.Mvc安装完成之后,第一件事就是对OnGetAsync方法做更多的修改并将分页按钮添加到Index视图中。 如下图所示添加了分页按钮的书籍列表页。

 

    二、向书籍列表后台代码添加分页功能

      在Pages/Books/Index.cshtml.cs中,用以下代码替换。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.RazorPages;
using Microsoft.EntityFrameworkCore;
using RazorMvcBooks.Models;
using Microsoft.AspNetCore.Mvc.Rendering;
using X.PagedList; 

namespace RazorMvcBooks.Pages.Books
{
    public class IndexModel : PageModel
    {
        private readonly RazorMvcBooks.Models.BookContext _context; 

        public IndexModel(RazorMvcBooks.Models.BookContext context)
        {
            _context = context;
        }
 

        public List<Book> Books;
        public SelectList Publishs;
        public string Publish { get; set; }
        public string NameSort { get; set; }
        public string DateSort { get; set; }
        public string CurrentFilter { get; set; }
        public string CurrentSort { get; set; } 

        public X.PagedList.IPagedList<Book> Book { get;set; } 

        public async Task OnGetAsync(string publish, string searchString,string sortOrder,int? pageIndex)
        {

            ViewData["CurrentSort"] = sortOrder;
            Publish = publish;
            int pageSize = 5;
            ViewData["SearchString"] = searchString;
            var page = pageIndex ?? 1; 

            //查询
            IQueryable<string> PublishingQuery = from m in _context.Book
                                             orderby m.Publishing
                                             select m.Publishing;
 
            var books = from m in _context.Book
                         select m;
 

            if (!String.IsNullOrEmpty(searchString))
            {
                books = books.Where(s => s.Name.Contains(searchString));
            } 

            if (!String.IsNullOrEmpty(publish))
            {
                books = books.Where(x => x.Publishing == publish);
            }
            Publishs = new SelectList(await PublishingQuery.Distinct().ToListAsync()); 

            //排序
            NameSort = String.IsNullOrEmpty(sortOrder) ? "name_desc" : "";
            DateSort = sortOrder
首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇.NET高级代码审计(第二课) Json.. 下一篇asp.net core系列 40 Web 应用MVC..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目