Fork me on GitHub

MvcPager 更新历史

Version 3.0.1 (2015-8-2)
  1. 修复了Ajax查询分页时,点击查询按钮没有反应或无法点击查询前所在页索引的问题;
Version 3.0 (2015-4-18)
  1. 修正了路由定义中对页索引参数使用约束而导致无法为页索引文本或下拉框生成跳链接的bug;
  2. 修正了Ajax分页模式下,如果首次加载时数据只有一页且未设置AutoHide=false,则控件不呈现任何有效html标签,导致MvcPager初始化失败以及后续Ajax分页功能失效的bug;
  3. 修正了Ajax分页模式下,同一PartialView中包含两个或更多MvcPager且PagerOptions.PageIndexParameterName属性值相同的情况下多次发送相同http请求的问题;
  4. MvcAjaxOptions新增EnableHistorySupport属性,用于Ajax分页时启用或禁用浏览器历史记录功能,默认值为true;
  5. MvcAjaxOptions新增AllowCache属性,用于Ajax分页时是否允许缓存(默认值为true,禁用缓存仅在GET提交时有效,详情参见jQuery文档);
  6. PagerOptions新增DisabledPagerItemTemplate属性,用于设置被禁用的分页元素的html模板;
  7. PagerOptions新增OnPageIndexError属性,用于设置页索引出错时要调用的Javascript函数,若未设置则默认用alert弹出错误信息;
  8. PagerOptions新增HidePagerItems属性,用于设置是否隐藏所有分页元素,开发者可通过客户端Javascript API自己创建分页元素并用goToPage()方法实现分页跳转;
  9. PagerOptions新增ActionName、ControllerName、RouteName、RouteValues和HtmlAttributes属性,即将原HtmlHelper.Pager及AjaxHelper.Pager扩展方法中的actionName,controllerName,routeName,routeValues及htmlAttributes参数并入PagerOptions属性中,相应调整了HtmlHelper.Pager和AjaxHelper.Pager扩展方法重载;
  10. PagerOptions的属性PagerItemWrapperFormatString,NumericPagerItemWrapperFormatString,CurrentPagerItemWrapperFormatString,NavigationPagerItemWrapperFormatString,MorePagerItemWrapperFormatString,分别改名为PagerItemTemplate,NumericPagerItemTemplate,CurrentPagerItemTemplate,NavigationPagerItemTemplate,MorePagerItemTemplate
  11. PagerOptions.MaxPageIndex属性更名为PagerOptions.MaximumPageNumber;
  12. 去除PagerOptions的属性PageIndexBoxWrapperFormatString,GoToPageSectionWrapperFormatString;
  13. 去除PagerOptions中页索引框的相关属性ShowPageIndexBox、ShowGoButton、PageIndexBoxType和GoButtonText,新增PageIndexBoxId和GoToButtonId属性,用于指定页索引框和跳转按钮;
  14. 去除PagerOptions.PagerItemsSeperator属性,分页按钮之间若需使用空格分隔可以用PagerOptions.PagerItemTemplate=" {0} "模板来实现;
  15. PagedList.StartRecordIndex 重命名为 PagedList.StartItemIndex;
  16. PagedList.EndRecordIndex 重命名为 PagedList.EndItemIndex;
  17. 被禁用的分页按钮不再使用超链接(<a disabled="disabled"></a>);
  18. HtmlHelper.Pager新增Options方法,AjaxHelper.Pager新增Options和AjaxOptions方法;
  19. 新增HtmlHelper.LoadMvcPagerScript方法,用于动态加载MvcPager的客户端脚本库(用该方法注册的脚本必须包含在<script>与</script>标签内),支持通过Ajax加载和初始化MvcPager;
  20. 对MvcPager客户端jQuery插件进行重构,添加新功能并做了大量代码优化和完善;
  21. 同时支持简体中文、繁体中文和英文等多种语言,不再单独发布中文版和英文版;
  22. 新增客户端Javascript API,用于获取分页控件属性及跳转到指定页;
  23. 添加更多示例项目,覆盖MvcPager所有功能;
  24. 重新制作的全新的在线帮助文档;
  25. 添加更多服务器端及客户端Javascript单元测试;
  26. 仅支持ASP.NET MVC 4.0及更高版本;
已知问题:
  1. Ajax分页模式下,如果用于返回数据的PartialView中包含多个MvcPager且PagerOptions.PageIndexParameterName属性值相同时,只有第一个MvcPager会发起Ajax请求且触发Ajax事件,其后的MvcPager将不再发起请求,因此OnSuccess、OnComplete和OnFailure等ajax事件不会被触发,对应的页索引输入或选择框在分页后也无法绑定事件及填充页索引;
  2. Ajax分页模式下浏览器历史记录支持功能暂不支持IE7以下及Opera浏览器;
  3. Url中值为空的参数在分页后将被从Url中去除;如:/articles/show/2?cls=news&type= 在分页后type参数将丢失,Url变为:/articles/show/3?cls=news
  4. 为AjaxForm使用Ajax分页查询功能时,web.config中的UnobtrusiveJavaScriptEnabled必须设为true(默认),否则会导致分页时数据被加载两次;
Version 2.0 (2013-7-15)
  1. 新增 IPagedList<T>接口;
  2. 新增 DisplayNameFor HtmlHelper扩展方法使其支持 IPagedList<T>和PagedList<T>;
  3. Ajax分页模式时浏览器历史记录支持(暂不支持IE7以下及Opera浏览器,下一版本中完善);
  4. Ajax分页模式下支持在分页过程中,通过GET和POST自动提交查询条件,实现多条件查询功能;
  5. ToPagedList扩展方法新增了当前页索引超出总页数时改变当前页索引为最后一页的页索引,同时返回最后一页数据的功能;
  6. 当MvcPager当前使用的路由定义中页索引参数的默认值为UrlParameter.Optional或页索引参数在路由参数中不存在时,生成的首页url将自动移除页索引参数,使其与默认首页url保持一致,利于SEO优化;
  7. PagerOptions新增FirstPageRouteName属性,指定第一页默认的路由名称,去掉页索引参数,优化SEO;
  8. 解决分页时url中中文参数被反复编码的bug。
  9. 移除PagerOptions.UseJqueryAjax属性;
  10. PagerOptions的SeperatorHtml属性更名为PagerItemsSeperator;
  11. 移除HtmlHelper的AjaxPager扩展方法,Ajax分页模式统一使用AjaxHelper的Pager扩展方法,不再支持Microsoft Ajax,仅支持jQuery,与官方保持一致;
  12. Ajax.Pager扩展方法不再接受AjaxOptions参数,改为MvcAjaxOptions,MvcAjaxOptions继承自AjaxOptions;
  13. MvcAjaxOptions新增属性EnablePartialLoading,用于支持Ajax分页模式下局部加载功能;
  14. MvcAjaxOptions新增属性DataFormId,用于标识在Ajax分页模式下,分页时向服务器端通过Ajax提交的数据所在的Form的ID值,用于实现Ajax分页模式下的查询功能;
  15. 解决了PagerOptions.AlwaysShowFirstLastPageNumber为true时,第一页页索引按钮和更多页按钮显示不正确的问题;
  16. 新增了两个PagedList构造函数;
  17. 为IEnumerable<T>接口添加ToPagedList扩展方法;
  18. 新增HtmlHelper扩展方法RegisterMvcPagerScriptResource,用于注册MvcPager的客户端jQuery插件脚本;
  19. MvcPager 2.0 for ASP.NET 4.0目标编译框架为.Net Framework 4.0,可用于目标框架为.Net Framework 4.0或4.5的ASP.NET MVC 4.0项目中;
  20. 取消对ASP.NET MVC 2.0的支持,仅支持ASP.NET MVC 3.0以上版本;
已知问题:
  1. Ajax分页模式下浏览器历史记录支持功能暂不支持IE7以下及Opera浏览器;
  2. Url中值为空的参数在分页后将被从Url中去除;如:/articles/show/2?cls=news&type= 在分页后type参数将丢失,Url变为:/articles/show/3?cls=news
  3. 为AjaxForm使用Ajax分页查询功能时,web.config中的UnobtrusiveJavaScriptEnabled必须设为true(默认),否则会导致分页时数据被加载两次;
Version 1.5 (2011-4-9)
  1. 增加IPagedList 接口,HtmlHelper.Pager、HtmlHelper.AjaxPager和Ajax.Pager扩展方法第一个参数改为IPagedList,不再是PagedList<T>;
  2. 修正了PageIndexParameterName区分大小写的bug;
  3. 添加PagerOptions.MaxPageIndex属性,允许限制显示的总页数;
  4. 允许部分受信任的调用方访问MvcPager;
  5. ASP.NET MVC 3 unobtrusive Ajax支持;
  6. 修正了jQuery Ajax分页时生成的url中重复出现x-requested-width=的bug;
  7. 修正了页索引文本或下拉框跳转脚本针对不同浏览器的兼容问题;
  8. 遵循xhtml标准(去除javascript标签的language属性);
  9. 代码精简优化;
  10. 完全向后兼容1.4版,升级时无需改动任何代码
Version 1.4 (2010-6-10)
  1. 修正了使用jQuery进行Ajax分页时,AjaxOptions中HttpMethod总是Get的bug;
  2. 使用jQuery进行Ajax分页时,AjaxOptions中HttpMethod默认为Post;
  3. 新增在同一页面上使用多个MvcPager为不同数据进行分页的示例;
Version 1.3 (2010-3-30)
  1. PagerOptions新增属性 ContainerTagName,可以设置控件在客户端呈现的Html标签,不再仅仅限于div;
  2. PagerOptions新增属性 PageIndexOutOfRangeErrorMessage、InvalidPageIndexErrorMessage,分别对应于页索引超出范围和页索引无效显示的错误信息;
  3. PagerOptions新增属性 ShowPageIndexBox,可以设置是否显示页索引输入或选择框;
  4. PagerOptions新增属性 PageIndexBoxType,指定页索引输入或选择框的类型,其值是一个PageIndexBoxType的枚举;
  5. PagerOptions新增属性 MaximumPageIndexItems,如果页索引框类型为DropDownList时,该值指定下拉框中最多显示多少个页索引;
  6. PagerOptions新增属性 ShowGoButton,指定在显示页索引文本或下拉框时,是否显示跳转按钮;
  7. PagerOptions新增属性 GoButtonText,跳转按钮上的文本;
  8. PagerOptions新增属性 PageIndexBoxWrapperFormatString,设置包容页索引输入文本或下拉框的格式化字符串;
  9. PagerOptions新增属性 GoToPageSectionWrapperFormatString,设置包容页索引输入或选择框及跳转按钮部分的格式化字符串;
  10. PagerOptions新增属性 PagerItemWrapperFormatString,可以设置所有分页元素的格式化字符串;
  11. jQuery Ajax分页时,实现了AjaxOptions的OnBegin、OnComplete和OnFailure事件属性,OnSuccess暂未实现;
  12. 修复了一些程序中的bug;
  13. 对代码进行了大量优化;
Version 1.2 (2009-12-26)
  1. PagedList类新增属性StartRecordIndex和EndRecordIndex,分别表示当前页记录起始索引和结束索引;
  2. PagerOptions类新增属性AutoHide,该属性指定在总页数只有一页的情况下,是否显示分页控件,默认值为true,即不显示;
  3. PagerOptions类新增属性AlwaysShowFirstLastPageNumber,该属性指示是否总是显示每一页和最后一页数字页索引按钮;
  4. PagerOptions类新增NumericPagerItemWrapperFormatString、CurrentPagerItemWrapperFormatString、NavigationPagerItemWrapperFormatString和MorePagerItemWrapperFormatString属性,允许将任何分页元素包含在自定义的html标签中,以方便应用CSS样式等;
  5. PagerOptions类新增ShowDisabledPagerItems属性,该属性指定是否显示被禁用的分页元素;
  6. PagerOptions类新增SeparatorHtml属性,该属性指定要分隔各分页导航元素的html元素,默认值为“&nbsp;&nbsp;”,即两个空格;
  7. 修正了通过调用PagedList构造函数生成PagedList对象无法正确计算总页数的bug;
  8. 修正了Ajax分页时丢失Url中?之后的参数的bug;
  9. ShowPageIndex属性更名为ShowNumericPagerItems;
  10. NumericButtonCount属性更名为NumericPagerItemCount;
  11. 将控件命名空间从Wuqi.Webdiyer改为Webdiyer.WebControls.Mvc;
Version 1.1 (2009-08-20)
  1. 支持使用MicrosoftAjax和MicrosoftMvcAjax客户端脚本库进行Ajax分页;
  2. 支持使用jQuery Ajax分页;
  3. 增强分页功能,增加Id、CssClass、MorePageText、HorizontalAlign等属性;
Version 1.0 (2009-06)
实现最基本分页功能,内部使用,未发布;