制作MVC4分页控件的示例分析-创新互联
这篇文章将为大家详细讲解有关制作MVC4分页控件的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
新蔡ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:028-86922220(备注:SSL证书合作)期待与您的合作!上一次做分页控件的时候设想的把分页设置类保存到数据库,后来觉得的没必要这么做。分页的包括htmlhelper 数据模型和分页设置都在PagerExtensions.cs中,不跟数据库发生关系,当其他项目中需要用分页的时候直接拷贝这个文件过去就可以直接用。栏目中的分页设置直接在栏目中添加字段然后在控制器中new一个PagerConfig,然后设置响应值。
修改后的PagerConfig说明
PagerConfig类
////// 分页配置 /// public class PagerConfig { ////// 当前页 /// public int CurrentPage { get; set; } ////// 每页记录数 /// public int PageSize { get; set; } ////// 总页数 /// public int TotalPage { get { return (int)Math.Ceiling(TotalRecord / (double)PageSize); } } ////// 总记录数 /// public int TotalRecord { get; set; } ////// 记录单位 /// public string RecordUnit { get; set; } ////// 记录名称 /// public string RecordName { get; set; } public PagerConfig() { CurrentPage = 1; PageSize = 20; RecordUnit = "条"; RecordName = "记录"; } }
后面要修改栏目模型用来保存分页设置
Category模型字段说明
修改后的栏目模型类
////// 栏目模型 /// public class Category { [Key] [Display(Name = "栏目Id")] public int CategoryId { get; set; } ////// 栏目名称 /// [Display(Name="栏目名称",Description="2-20个字符")] [Required(ErrorMessage="×")] [StringLength(50,ErrorMessage="×")] public string Name { get; set; } ////// 父栏目编号 /// [Display(Name="父栏目")] [Required(ErrorMessage="×")] public int ParentId { get; set; } ////// 父栏目路径【根节点的值为0,子节点的值为:0,1,6,76】 /// [Required()] public string ParentPath { get; set; } ////// 栏目类型【0-常规栏目;1-单页栏目;2-外部链接】 /// [Display(Name="栏目类型")] [Required(ErrorMessage = "×")] public int Type { get; set; } ////// 内容模型【仅在栏目为普通栏目时有效】 /// [Display(Name="内容模型")] [StringLength(50, ErrorMessage = "×")] public string Model { get; set; } ////// 栏目视图 /// [Display(Name = "栏目视图", Description = "栏目页的视图,最多255个字符。。")] [StringLength(255, ErrorMessage = "×")] public string CategoryView { get; set; } ////// 内容页视图 /// [Display(Name = "内容视图", Description = "内容页视图,最多255个字符。。")] [StringLength(255, ErrorMessage = "×")] public string ContentView { get; set; } ////// 链接地址 /// [Display(Name="链接地址",Description="点击栏目时跳转到的链接地址,最多255个字符。")] [StringLength(255,ErrorMessage = "×")] public string LinkUrl { get; set; } ////// 栏目排序 /// [Display(Name = "栏目排序", Description = "针对同级栏目,数字越小顺序越靠前。")] [Required(ErrorMessage = "×")] public int Order { get; set; } ////// 内容排序 /// [Display(Name = "内容排序", Description = "栏目所属内容的排序方式。")] public int? ContentOrder { get; set; } ////// 每页记录数 /// [Display(Name = "每页记录数", Description = "栏目所属内容的排序方式。")] public int? PageSize { get; set; } ////// 记录单位 /// [Display(Name = "记录单位", Description = "记录的数量单位。如文章为“篇”;新闻为“条”。")] [StringLength(255, ErrorMessage = "×")] public string RecordUnit { get; set; } ////// 记录名称 /// [Display(Name = "记录名称", Description = "记录的名称。如“文章”、“新闻”、“教程”等。")] [StringLength(255, ErrorMessage = "×")] public string RecordName { get; set; } public Category() { ParentPath = "0"; Type = 0; CategoryView = "Index"; ContentView = "Index"; Order = 0; ContentOrder = 1; PageSize = 20; RecordUnit = "条"; RecordName = "篇"; } }
由于栏目的模型字段发生变换 添加 修改栏目信息的视图和action也要进行相应修改。
修改ManageAdd视图
@model Ninesky.Models.Category @{ ViewBag.Title = "ManageAdd"; Layout = "~/Views/Layout/_Manage.cshtml"; }添加栏目
@Html.DropDownList("Type")
@Html.ValidationMessageFor(model => model.Type)
@Html.DisplayDescriptionFor(model => model.Type)
@Html.LabelFor(model => model.Name)