转载使用Flurl制作可复用的分页组件
2015-04-15 22:25
246 查看
使用Flurl制作可复用的分页组件
使用ASP.NET MVC查询时,一直使用MvcPaging组件,虽然需要自定义MvcPaging.Pager才能达到我想要的效果,但在没有较好的URL库时,还是这么用。分页的逻辑本来就不复杂,更重要的是最近发现了Flurl这个开源库,所以采用Flurl制作一个DIY的分页组件,核心是PagingModel文件,算法可能不是最优,但包含了主要的逻辑和实现关键点。由于在查询方面,我使用以下实践:1.使用ViewModel封装查询参数
2.使用ViewModel作为View的Model类型
3.采用表单的GET方式提交查询到Action
4.直接设置Url的参数提交查询到Action
因此自制的分页组件也在上述环境下应用。本来计算将查询和分页写在一起,但是为了便于独立演示分页还是将分页部分独立出来。
1.首先使用String扩展方法包装Flurl中的方法,便于以后更换其他库。
2.自定义继承自IHtmlString的对象PagingModel,这样可以不依赖MVC的程序库。同时实现了IvalidatableObject接口,检查PageSize异常。一些默认的参数可以配置成从配置文件(在ASP.NET MVC 系列:文件上传的Demo有相关的代码)或配置数据库中读取。
3.在ASP.NET MVC Razor中直接使用或使用HtmlHelper扩展方法包装调用。可以对类库再次保证,引用ASP.NET MVC,这样可以直接返回SelectList对象。
Action:
View:
4.可以不使用继承自PagingModel的方式,直接在View中new 一个PagingModel方式,如:
5.效果演示:
(1)靠近首页和末页的链接数不足时,会向中间补全。博客园的导航就只处理了靠近首页部分,没有正确处理末页部分。
(2)默认PageIndex和PageSize不会添加参数。Url中参数为空时会自动过滤掉。
Demo:点击下载
相关文章推荐
- ASP.NET:使用Flurl制作可复用的分页组件
- 2018.01.29.使用vue组件modal制作登陆弹窗,并实现背景灰蒙透明效果
- 对使用Delphi制作DLL复用文件的建议
- jsp分页组件的使用
- 【Unity】3.2 利用预设(Prefab)制作可复用的组件
- 【转载】使用Axure制作App原型怎样设置尺寸?
- vue---使用vue编写插件,基于vue2.x编写常用toast loading插件,一键复用组件
- 【React Native】Navigator组件 使用理解-转载自React Native中文社区
- YII2中分页组件的使用
- Ext4.2之Grid扩展,扩展选择策略,自动设置分页组件,让Grid使用更简洁
- React study(四)Mixin编写使用、函数复用、自定义表单组件
- 使用Vue制作切口盒子组件
- 使用BackgroundWorker组件进行异步操作编程【转载】
- asp.net MVC通用分页组件 使用方便 通用性强
- [Flash CS3]使用AS3制作自己的组件
- 分页组件的使用-jqPaginator
- 利用表格分页显示数据的js组件datatable的使用
- 转载:分页原理+分页代码+分页类制作
- 使用PHP制作 简易员工管理系统之五(分页显示用户信息)
- HOW TO:使用 Visual C# _NET 对 DataGrid Windows 控件执行分页(转载)