asp.net mvc 自定义pager封装与优化
发布时间:2020-12-16 09:01:33 所属栏目:asp.Net 来源:网络整理
导读:asp.net mvc 自定义pager封装与优化 Intro 之前做了一个通用的分页组件,但是有些不足,从翻页事件和分页样式都融合在后台代码中,到翻页事件可以自定义,再到翻页和样式都和代码分离, 自定义分页 pager 越来越容易扩展了。 HtmlHelper Pager扩展 Pager V1.
asp.net mvc 自定义pager封装与优化Intro之前做了一个通用的分页组件,但是有些不足,从翻页事件和分页样式都融合在后台代码中,到翻页事件可以自定义,再到翻页和样式都和代码分离, 自定义分页 pager 越来越容易扩展了。 HtmlHelper Pager扩展Pager V1.0 :1 /// <summary> 2 /// Pager V1.0 3 </summary> 4 <param name="helper">HtmlHelper</param> 5 <param name="pager">分页信息 6 <returns></returns> 7 public static MvcHtmlString Pager(this HtmlHelper helper,PagerModel pager) 8 { 9 StringBuilder sbHtmlText = new StringBuilder(); 10 sbHtmlText.Append("<div style="text-align:center"><nav><ul class="pagination">"); 11 if (pager.PageIndex <= 1) 12 { 13 sbHtmlText.Append(<li class="disabled"><a href="javascript:void(0)" aria-label="Previous"><span aria-hidden="true">«</span></a></li>14 } 15 else 16 17 sbHtmlText.AppendFormat(<li><a href="javascript:loadData(1)" aria-label="1"><span aria-hidden="true">«</span></a></li>",pager.PageIndex - 18 sbHtmlText.AppendFormat(<li><a href="javascript:loadData({0})">{0}</a></li>19 20 sbHtmlText.AppendFormat(<li class="active"><a href="javascript:void(0)">{0}<span class="sr-only">(current)</span></a></li>,pager.PageIndex); 21 if (pager.PageIndex >= pager.PageCount) 22 23 sbHtmlText.Append(<li class="disabled"><a href="javascript:void(0)" aria-label="Next"><span aria-hidden="true">»</span></a></li>24 25 26 27 sbHtmlText.AppendFormat(28 sbHtmlText.AppendFormat(<li><a href="javascript:loadData({0})" aria-label="Next"><span aria-hidden="true">»</span></a></li>29 30 sbHtmlText.Append(</ul></nav>31 sbHtmlText.AppendFormat(<div><span>每页有<strong>{0}</strong>条数据,一共有<strong>{1}</strong>页,总计<strong>{2}</strong>条数据</span></div></div>32 return MvcHtmlString.Create(sbHtmlText.ToString()); 33 } ? Pager V2.0Pager V2.0 <param name="onPageChange">翻页事件 7 8 this HtmlHelper helper,PagerModel pager,Func<int,string> onPageChange) 9 10 StringBuilder sbHtmlText = 11 sbHtmlText.Append(12 13 14 sbHtmlText.Append(15 16 17 <li><a href="{0}" aria-label="Previous"><span aria-hidden="true">«</span></a></li>)); 19 sbHtmlText.AppendFormat(<li><a href="{0}">{1}</a></li>1),1)">20 21 sbHtmlText.AppendFormat(22 23 24 sbHtmlText.Append(25 26 27 29 sbHtmlText.AppendFormat(<li><a href="{0}" aria-label="Next"><span aria-hidden="true">»</span></a></li>30 31 sbHtmlText.Append(32 sbHtmlText.AppendFormat(33 34 } ? Pager V3.0Pager V3.0 翻页地址或事件<param name="pagerViewName">分页分部视图名称 8 <param name="displayMode">分页显示模式 9 10 string> onPageChange,1)">string pagerViewName,PagingDisplayMode displayMode = PagingDisplayMode.Always) 11 12 pager.OnPageChange = onPageChange; 13 pager.PagingDisplayMode = displayMode; 14 MvcHtmlString.Create(helper.Partial(pagerViewName,pager).ToHtmlString()); 15 } ? SummaryPager V1.0 分页样式和翻页事件如果要修改都要修改 CSharp 代码 Pager V2.0 可以自定义翻页事件,但是要修改分页样式还是要修改 CSharp 代码 Pager V3.0 可以在自定义分页分部视图中修改翻页事件或地址和分页样式 End现在已经将这个项目 MvcSimplePager 打包到 Nuget http://www.nuget.org/packages/MvcSimplePager/,你可以在VS中 nuget 包管理器中搜索 MvcSimplePager 进行使用。 自定义 MvcSimplePager 项目和示例代码:https://github.com/WeihanLi/MvcSimplePager ,你可以根据需要再进行自己的定制。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- asp.net-mvc – 为什么ASP.NET MVC 4与IList for editor不能
- asp.net jquery ajax json:交换数据的简单例子
- asp.net – 将可以为空的int绑定到asp:TextBox
- C#如何创建泛型类T的实例
- 在IIS7中的ASP.NET MVC 3中找不到图像
- asp.net – Visual Studio 2015 Web应用程序.NET Core与.NE
- 使用webusercontrol获取输出缓存以在ASP.net中工作
- iis – 诊断Classic ASP中的HTTP 500错误
- views – 我应该在asp.net MVC6中为我的所有图像添加asp-ap
- ASP.Net MVC帮助重构
推荐文章
站长推荐
- 合并两个ASP.NET成员资格数据库
- asp.net-mvc – UserManager.AddPasswordAsync()
- asp.net-mvc-4 – ASP.NET MVC 4默认模板在_Logi
- 如何配置ASP.NET MVC项目以使用Boo
- asp.net – 是否可以为MaskedEditExtender设置掩
- asp.net – 可以在Web.config中配置一个位置,只允
- asp.net-mvc-4 – MVC4自定义OnActionExecuting
- environment-variables – 如何在生产环境中设置
- asp.net-mvc – 如何构造VB.NET Windows窗体应用
- asp.net – 无法从[服务器]下载[文件]无法打开此
热点阅读