当前位置: 首页 > news >正文

西宁网站建设公司排行网站查询域名ip解析

西宁网站建设公司排行,网站查询域名ip解析,平面设计培训班学费一般多少百度贴吧,百度推广上班怎么样ABP入门系列目录——学习Abp框架之实操演练源码路径#xff1a;Github-LearningMpaAbp 完成了任务清单的增删改查#xff0c;咱们来讲一讲必不可少的的分页功能。 首先很庆幸ABP已经帮我们封装了分页实现#xff0c;实在是贴心啊。 来来来#xff0c;这一节咱们就来捋一捋如… ABP入门系列目录——学习Abp框架之实操演练源码路径Github-LearningMpaAbp 完成了任务清单的增删改查咱们来讲一讲必不可少的的分页功能。 首先很庆幸ABP已经帮我们封装了分页实现实在是贴心啊。 来来来这一节咱们就来捋一捋如何使用ABP的进行分页吧。 1. 分页请求DTO定义 数据传输对象(Data Transfer Objects)用于应用层和展现层的数据传输。 展现层传入数据传输对象(DTO)调用一个应用服务方法接着应用服务通过领域对象执行一些特定的业务逻辑并且返回DTO给展现层。这样展现层和领域层被完全分离开了。在具有良好分层的应用程序中展现层不会直接使用领域对象(仓库实体)。 我们在展现层有分页请求时一般需要指定两个参数一个用来标志第几页、一个是每页行数一般有配置文件配置。 因为分页是一个很常用的功能所以展现层我们有分页请求时最好有相应的DTO来封装这两个参数。 在ABP源码中并没有为我们封装这样公用的类但是在ABPZero项目中定义了相应的分页Dto。 对应的类图如下 分页排序过滤相应Dto类图 从中可以看到主要包括以下四个公共DTO定义 PagedInputDto分页请求DtoPagedAndSortedInputDto分页排序DtoPagedSortedAndFilteredInputDto分页排序过滤DtoPagedAndFilteredInputDto分页过滤Dto 是不是很实用我们的分页一般是和过滤排序混合使用的。 其中主要定义了以下几个主要属性 MaxResultCount每页行数可以从定义的配置中读取。SkipCount跳转数量一般计算公式为SkipCountPage*MaxResultCount页数*行数。Filter过滤字符串Sorting排序方式 具体的实现就不详述了相信仔细看类图就能自己动手实现。AbpZero把这些公共Dto定义在了应用服务层的Dto文件夹下具体路径如下图。 2. 如何使用分页DTO 拿我们的任务清单举例我们修改下创建的GetTaskInputDto让它继承自PagedSortedAndFilteredInputDto这样GetTaskInputDto就拥有了进行分页排序过滤需要用到的属性。 public class GetTasksInput : PagedSortedAndFilteredInputDto {public TaskState? State { get; set; }public int? AssignedPersonId { get; set; } }3. 返回分页结果DTO Abp已经为我们定义了泛型的PagedResultDto用来包装返回的分页结果。其中主要包括两个属性int TotalCount保存总个数IReadOnlyListT Items保存返回的分页结果集。 4. 应用服务层分页逻辑实现 1、 在ITaskAppService中定义接口PagedResultDtoTaskDto GetPagedTasks(GetTasksInput input); 2、 在TaskAppService中实现接口 public PagedResultDtoTaskDto GetPagedTasks(GetTasksInput input) {//初步过滤var query _taskRepository.GetAll().Include(t t.AssignedPerson).WhereIf(input.State.HasValue, t t.State input.State.Value).WhereIf(!input.Filter.IsNullOrEmpty(), t t.Title.Contains(input.Filter)).WhereIf(input.AssignedPersonId.HasValue, t t.AssignedPersonId input.AssignedPersonId.Value);//排序query !string.IsNullOrEmpty(input.Sorting) ? query.OrderBy(input.Sorting) : query.OrderByDescending(t t.CreationTime);//获取总数var tasksCount query.Count();//默认的分页方式//var taskList query.Skip(input.SkipCount).Take(input.MaxResultCount).ToList();//ABP提供了扩展方法PageBy分页方式var taskList query.PageBy(input).ToList();return new PagedResultDtoTaskDto(tasksCount,taskList.MapToListTaskDto()); }分页的实现很简单先进行过滤排序再进行分页最后使用PagedResultDto封装分页结果。 细心的你也许发现了两个未曾在Linq中用过的方法WhereIf和PageBy是的这是ABP提供的扩展方法感兴趣的可以看下源码QueryableExtensions的具体实现其实实现的很简单但我们平时在使用linq时却未必能想得到。 在这里提几个问题 请问在这段代码中共进行了几次查询代码中使用的是什么分页技术真分页假分页 5. 使用X.PagedList进行前端分页 在Asp.Net Mvc中进行前端分页有一系列开源实现在我的Demo中使用的是开源的X.PagedList分页。想了解具体源码请参考X.PagedList GitHub。 1、请自行在Web项目中安装X.PagedList.Mvc Nuget程序包 X.PagedList.Mvc Nuget程序包 2、在Controller中使用X.PagedList提供的方法构造分页结果供前端使用 因为我们在应用服务层已经手动实现了分页逻辑所以按照X.PagedList官网示例我们需要自行构造StaticPagedList作为返回结果。 public ActionResult PagedList(int? page){//每页行数var pageSize 5;var pageNumber page ?? 1;//第几页var filter new GetTasksInput{SkipCount (pageNumber - 1) * pageSize,//忽略个数MaxResultCount pageSize};var result _taskAppService.GetPagedTasks(filter);//已经在应用服务层手动完成了分页逻辑所以需手动构造分页结果var onePageOfTasks new StaticPagedListTaskDto(result.Items, pageNumber, pageSize, result.TotalCount);//将分页结果放入ViewBag供View使用ViewBag.OnePageOfTasks onePageOfTasks;return View(); }从代码中可以看到我们构造完X.PagedList提供的分页结果后放入了ViewBag中供视图使用。 3、View中添加分页控件 PagedList视图的代码如下 using X.PagedList.Mvc; using Abp.Web.Mvc.Extensions using X.PagedList; link href~/Content/PagedList.css relstylesheet / ul classlist-groupforeach (var task in ViewBag.OnePageOfTasks){li classlist-group-itemdiv classbtn-group pull-rightbutton typebutton classbtn btn-infoEdit/buttonbutton typebutton classbtn btn-successDelete/button/divdiv classmediaa classmedia-left href#*i classfa Model.GetTaskLable(task) fa-3x/i*/adiv classmedia-bodyh4 classmedia-headingtask.Title/h4span classtext-mutedtask.CreationTime.ToString(yyyy-MM-dd HH:mm:ss)/span/div/div/li} /ulHtml.PagedListPager((IPagedList)ViewBag.OnePageOfTasks, page Url.Action(PagedList, new { page }))其中最后一句代码是用来生成分页控件。 最终效果如图 总结 本节主要讲解了如何使用ABP进行后台分页并顺带讲解了ABP后台分页逻辑的实现方式。同时也演示了如何使用X.PagedList进行前端分页。 作者圣杰 链接https://www.jianshu.com/p/19b666a4b8b1 来源简书 著作权归作者所有。商业转载请联系作者获得授权非商业转载请注明出处。
http://www.zqtcl.cn/news/624389/

相关文章:

  • 柳州企业网站开发公司如何做网站首页图
  • 刷赞网站空间免费深圳网站制作公司排名
  • 网站内部优化策略获取网站的路径
  • 网站群 优点今天西安最新通告
  • 惠济免费网站建设设计制作的广告公司
  • 做一个网站建设装潢设计属于什么专业
  • 水处理网站源码注册销售公司流程和费用
  • 诸城网站建设0536s整站优化seo排名点击
  • 企业建设网站需注意哪些内容苏州网站怎么做
  • 浏览器打开网站网站推广软件工具
  • 网站主题编辑工具WordPress公司网站策划方案
  • 做旅游网站选什么空间搜索引擎优化策略有哪些
  • 网站备案多少钱安全网站建设与服务的关系
  • 手机端网页设计尺寸规范优化seo排名
  • 做网站业务提成多少厦门十大装修公司排名榜
  • 为什么用开源建站wordpress rss 插件
  • 语文建设投稿网站南昌做网站的公司多不多
  • 石家庄网站建设的公司功能性质网站
  • 企业网站主页模板装饰公司名字起名大全
  • 马鞍山网站设计价格如何在微信公众号内部做网站
  • 申请网站建设经费的报告生态建设网站
  • 建网站要多少钱用自己的服务器河北工程大学网站开发成本
  • 宁波网站建站公司商务网站模块设计时前台基础设施建设不包括
  • 徐州免费网站制作怎么用阿里云服务器搭建wordpress
  • php猎奇源码 织梦新闻视频图片八卦娱乐趣事资讯门户网站模板html代码表格
  • 南通做网站优化哪家好网页策划书 网站建设定位
  • 防止访问网站文件夹绵阳 网站设计
  • 网页与网站的区别是什么东莞网站公司排名
  • 盐城市城乡和住房建设厅网站wordpress文章订阅
  • 济南网站优化wordpress文件上传到那个文件