zoukankan      html  css  js  c++  java
  • PagedList.MVC 应用

    1. NuGet 下载 PagedList.MVC 

    2. View Page

    @model PagedList.IPagedList<Libaray.Models.Entities.BookModel>
    @using PagedList.Mvc;
    @{
        Layout = "~/Views/Shared/_Layout.cshtml";
    }
    
    <script type="text/javascript">
        $(function () {
    
            $("#txtSearch").val(@Request.QueryString["keyWords"]);
    
        })
    </script>
    
    <div class="row" style="margin-top:20px;">
        <div class="col-sm-2">
            @Html.Partial("_AccountNavigator")
        </div>
        <div class="col-sm-10">
            <div class="row">
                <div class="col-sm-6">
                    <a class="btn btn-sm btn-primary" href="/Book/NewBook">新增</a>
                </div>
                <div class="col-sm-6 ">
                    <form id="formSearch" method="get" class="form-horizontal">
                        <div class="input-group text-right">
                            @Html.TextBox("keyWords",ViewBag.KeyWords as string, new { @name= "keyWords",@class = "form-control", @placeholder = "书名/作者/描述..." })
                            <div class="input-group-btn">
                                <button id="search" class="btn btn-sm btn-primary">查询</button>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
    
            <hr />
            <div class="table-responsive">
                <table class="table table-striped table-hover">
                    <thead>
                        <tr>
                            <th>图书名称</th>
                            <th>作者</th>
                            <th>描述</th>
                            <th>生产日期</th>
                            <th>录入时间</th>
                            <th>Action</th>
                        </tr>
                    </thead>
                    <tbody>
                        @foreach (var item in Model)
                        {
                            <tr>
                                <td>@Html.DisplayFor(m => item.BookName)</td>
                                <td>@Html.DisplayFor(m => item.Author)</td>
                                <td>@Html.DisplayFor(m => item.BookDescription)</td>
                                <td>@Html.DisplayFor(m => item.BookDate)</td>
                                <td>@Html.DisplayFor(m => item.CreatedOn)</td>
                                <td><a href="/Book/NewBook?BookId=@item.BookId">编辑</a></td>
                            </tr>
                        }
                    </tbody>
                </table>
                @Html.PagedListPager(Model, id => Url.Action("BookList", new { id,keyWords=ViewBag.KeyWords }))
            </div>
        </div>
    </div>

    2. Book Controller

     // GET: Book
            public ActionResult BookList(int id=1,int irowCount=25, string keyWords =null)
            {
                BookService BookDAL = new BookService();
                ViewBag.KeyWords = keyWords;
                var sResult = BookDAL.SearchBookList(id, irowCount, keyWords);
                return View(sResult);
            }
    public class BookService:BaseService<BookModel> //此处用到了Cache, 如果不需要则可跳过,
        {
            public IPagedList<BookModel> SearchBookList(int id = 1, int irowCount=20, string sKeyWords = null)
            {
                List<BookModel> sList = new List<BookModel>();
                if (WebCacheHelper.GetCache("BookList") == null)
                {
                    using (LibContext = new LibarayContext())
                    {
                        sList = LibContext.BookModels.ToList();
                        WebCacheHelper.SetCache("BookList", sList);
                    }
                }
                else
                {
                     sList = WebCacheHelper.GetCache("BookList") as List<BookModel>;
                }
    
                if (!string.IsNullOrEmpty(sKeyWords))
                {
                    var squery = from bk in sList where bk.Author.Contains(sKeyWords) || bk.BookName.Contains(sKeyWords) || bk.BookDescription.Contains(sKeyWords) select bk; //注意,如果Author, BookName, Description 为null, 此行会报错。
    
                    return squery.OrderByDescending(u => u.UpdatedOn).ToPagedList(id, irowCount);
                }
                else
                {
                    return sList.OrderByDescending(m => m.UpdatedOn).ToPagedList(id, irowCount);
                }
            }
    }

     WebCacheHelper // 转载别人,具体出处忘记了。

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Web;
    
    namespace Libaray.Common
    {
        public class WebCacheHelper
        {
            /// <summary>
            /// 缓存辅助类
            /// </summary>
    
            /// <summary>
            /// 获取数据缓存
            /// </summary>
            /// <param name="CacheKey"></param>
            public static object GetCache(string CacheKey)
            {
                System.Web.Caching.Cache objCache = HttpRuntime.Cache;
                return objCache[CacheKey];
            }
    
            /// <summary>
            /// 设置数据缓存
            /// </summary>
            public static void SetCache(string CacheKey, object objObject)
            {
                System.Web.Caching.Cache objCache = HttpRuntime.Cache;
                objCache.Insert(CacheKey, objObject);
            }
    
            /// <summary>
            /// 设置数据缓存
            /// </summary>
            public static void SetCache(string CacheKey, object objObject, TimeSpan Timeout)
            {
                System.Web.Caching.Cache objCache = HttpRuntime.Cache;
                objCache.Insert(CacheKey, objObject, null, DateTime.MaxValue, Timeout, System.Web.Caching.CacheItemPriority.NotRemovable, null);
            }
    
            /// <summary>
            /// 设置数据缓存
            /// </summary>
            public static void SetCache(string CacheKey, object objObject, DateTime absoluteExpiration, TimeSpan slidingExpiration)
            {
                System.Web.Caching.Cache objCache = HttpRuntime.Cache;
                objCache.Insert(CacheKey, objObject, null, absoluteExpiration, slidingExpiration);
            }
    
            /// <summary>
            /// 移除指定数据缓存
            /// </summary>
            public static void RemoveAllCache(string CacheKey)
            {
                System.Web.Caching.Cache _cache = HttpRuntime.Cache;
                _cache.Remove(CacheKey);
            }
    
            /// <summary>
            /// 移除全部缓存
            /// </summary>
            public static void RemoveAllCache()
            {
                System.Web.Caching.Cache _cache = HttpRuntime.Cache;
                IDictionaryEnumerator CacheEnum = _cache.GetEnumerator();
                while (CacheEnum.MoveNext())
                {
                    _cache.Remove(CacheEnum.Key.ToString());
                }
            }
    
        }
    }
  • 相关阅读:
    报错:Table 'sell.hibernate_sequence' doesn't exist
    “可恶”的mariadb
    日志的使用
    微信小程序开发步骤简述
    我对同步异步阻塞和非阻塞的简单理解
    dubbo+zookeeper搭建时报错java.lang.NoClassDefFoundError: org/apache/curator/RetryPolicy
    在CentOS7中安装zookeeper
    markdown 显示图片的三种方式
    Spring Data JPA 提供的各种Repository接口作用
    windows nginx 搭建文件服务器(通俗易懂)
  • 原文地址:https://www.cnblogs.com/VirtualMJ/p/5178055.html
Copyright © 2011-2022 走看看