using System.Runtime.Serialization; /// <summary> /// 通用分页请求类 /// </summary> [DataContract] public class PagedListModelReq : Request { /// <summary> /// <strong>Initializes a new instance of the <see cref="</strong>OperationLogReq<strong>" /> class</strong> /// OperationLogReq /// </summary> public PagedListModelReq() { this.PageIndex = 1; this.PageSize = 15; } /// <summary> /// 索引开始 /// </summary> [DataMember] public int StartIndex { get { int index = 0; if (this.PageSize > 0 && this.PageIndex > 0) { index = ((this.PageIndex - 1) * this.PageSize) + 1; } return index; } } /// <summary> /// 索引结束 /// </summary> [DataMember] public int EndIndex { get { int index = 1; if (this.PageSize > 0 && this.PageIndex > 0) { index = this.PageIndex * this.PageSize; } return index; } } /// <summary> /// 分页大小 /// </summary> [DataMember] public int PageSize { get; set; } /// <summary> /// 第几页数 /// </summary> [DataMember] public int PageIndex { get; set; } /// <summary> /// Called when [deserialized]. /// </summary> /// <param name="context">StreamingContext</param> [OnDeserialized] private void OnDeserialized(StreamingContext context) { if (this.PageIndex <= 0) { this.PageIndex = 1; } if (this.PageSize <= 0) { this.PageSize = 15; } } } /// <summary> /// 通用分页请求类 /// </summary> /// <typeparam name="T">Poco类型</typeparam> [DataContract] public class PagedListModelReq<T> : Request { /// <summary> /// <strong>Initializes a new instance of the <see cref="</strong>OperationLogReq<strong>" /> class</strong> /// OperationLogReq /// </summary> public PagedListModelReq() { this.PageIndex = 1; this.PageSize = 15; } /// <summary> /// 索引开始 /// </summary> [DataMember] public int StartIndex { get { int index = 0; if (this.PageSize > 0 && this.PageIndex > 0) { index = ((this.PageIndex - 1) * this.PageSize) + 1; } return index; } } /// <summary> /// 索引结束 /// </summary> [DataMember] public int EndIndex { get { int index = 1; if (this.PageSize > 0 && this.PageIndex > 0) { index = this.PageIndex * this.PageSize; } return index; } } /// <summary> /// 分页大小 /// </summary> [DataMember] public int PageSize { get; set; } /// <summary> /// 第几页数 /// </summary> [DataMember] public int PageIndex { get; set; } /// <summary> /// Called when [deserialized]. /// </summary> /// <param name="context">序列化的上下文</param> [OnDeserialized] private void OnDeserialized(StreamingContext context) { if (this.PageIndex <= 0) { this.PageIndex = 1; } if (this.PageSize <= 0) { this.PageSize = 15; } } }
[Serializable] [DataContract] public class PagedResult<T> : IPagedResult<T> { protected PagedResult(); public PagedResult(IList<T> source, int pageIndex, int pageSize); public PagedResult(IQueryable<T> source, int pageIndex, int pageSize); public PagedResult(IEnumerable<T> source, int pageIndex, int pageSize, int totalCount); [DataMember] public bool HasNextPage { get; } [DataMember] public bool HasPreviousPage { get; } [DataMember] public IEnumerable<T> Items { get; } [DataMember] public int PageIndex { get; } [DataMember] public int PageSize { get; } [DataMember] public int TotalCount { get; } [DataMember] public int TotalPages { get; } }
/// <summary> /// 通用分页返回类 /// </summary> /// <typeparam name="T">Model对应的类型</typeparam> [DataContract] public class PagedListModelResp<T> : Response { /// <summary> /// 返回分页数据 /// </summary> [DataMember] public PagedResult<T> List { get; set; } }
本文介绍了一种通用的分页请求和响应类设计,适用于多种类型的分页操作。此类设计包括了分页的基本属性如页码、每页数量、开始和结束索引,以及序列化和反序列化处理,确保了数据的一致性和默认值设定。
1697

被折叠的 条评论
为什么被折叠?



