页面初始化时只有一页数据,或没数据时,出现分页控件初始化失败以及后续Ajax分页功能失效的问题,

<div class="pagin">
<div class="message">
@{int totalItemCount = Model == null ? 20 : Model.TotalItemCount;}
@{int currentPageIndex = Model == null ? 2 : Model.CurrentPageIndex;}

<i class="blue">@totalItemCount &nbsp;</i>条记录,当前显示第&nbsp;<i class="blue">@currentPageIndex &nbsp;</i>页
</div>
<div class="paginList" style="margin-top:-20px; font-size:smaller !important;">
@Ajax.Pager(Model, new PagerOptions{PageIndexParameterName = "id",ContainerTagName = "ul",PrevPageText = "上页",NextPageText = "下页",FirstPageText = "首页",LastPageText = "尾页",CssClass = "pagination",PagerItemsSeperator = "",CurrentPagerItemWrapperFormatString = "<li class=\"active\"><a href=\"#\">{0}</a></li>",PagerItemWrapperFormatString = "<li>{0}</li>",NumericPagerItemCount = 5,AlwaysShowFirstLastPageNumber = true },
      new MvcAjaxOptions{UpdateTargetId = "container",HttpMethod = "Post",DataFormId = "searchForm" }, new { style = "float:right" })
</div>
</div>

解决方案:

分页插件设置属性:AutoHide=false

<div class="pagin">
<div class="message">
@{int totalItemCount = Model == null ? 20 : Model.TotalItemCount;}
@{int currentPageIndex = Model == null ? 2 : Model.CurrentPageIndex;}

<i class="blue">@totalItemCount &nbsp;</i>条记录,当前显示第&nbsp;<i class="blue">@currentPageIndex &nbsp;</i>页
</div>
<div class="paginList" style="margin-top:-20px; font-size:smaller !important;">
@Ajax.Pager(Model, new PagerOptions{PageIndexParameterName = "id",ContainerTagName = "ul",PrevPageText = "上页",NextPageText = "下页",FirstPageText = "首页",LastPageText = "尾页",CssClass = "pagination",PagerItemsSeperator = "",CurrentPagerItemWrapperFormatString = "<li class=\"active\"><a href=\"#\">{0}</a></li>",PagerItemWrapperFormatString = "<li>{0}</li>",NumericPagerItemCount = 5,AlwaysShowFirstLastPageNumber = true,AutoHide=false},
    new MvcAjaxOptions{UpdateTargetId = "container",HttpMethod = "Post",DataFormId = "searchForm" }, new { style = "float:right" })
</div>
</div>

注:MvcPager3.0版本已解决:

附MvcPager 3.0 更新说明

  • 修正了路由定义中对页索引参数使用约束而导致无法为页索引文本或下拉框生成跳链接的bug;
  • 修正了Ajax分页模式下,如果首次加载时数据只有一页且未设置AutoHide=false,则控件不呈现任何有效html标签,导致MvcPager初始化失败以及后续Ajax分页功能失效的bug;
  • 修正了Ajax分页模式下,同一PartialView中包含两个或更多MvcPager且PagerOptions.PageIndexParameterName属性值相同的情况下多次发送相同http请求的问题;
  • MvcAjaxOptions新增EnableHistorySupport属性,用于Ajax分页时启用或禁用浏览器历史记录功能,默认值为true;
  • MvcAjaxOptions新增AllowCache属性,用于Ajax分页时是否允许缓存(默认值为true,禁用缓存仅在GET提交时有效,详情参见jQuery文档);
  • PagerOptions新增DisabledPagerItemTemplate属性,用于设置被禁用的分页元素的html模板;
  • PagerOptions新增OnPageIndexError属性,用于设置页索引出错时要调用的Javascript函数,若未设置则默认用alert弹出错误信息;
  • PagerOptions新增HidePagerItems属性,用于设置是否隐藏所有分页元素,开发者可通过客户端Javascript API自己创建分页元素并用goToPage()方法实现分页跳转;
  • PagerOptions新增ActionName、ControllerName、 RouteName、RouteValues和HtmlAttributes属性,即将原HtmlHelper.Pager及 AjaxHelper.Pager扩展方法中的actionName,controllerName,routeName,routeValues及 htmlAttributes参数并入PagerOptions属性中,相应调整了HtmlHelper.Pager和AjaxHelper.Pager 扩展方法重载;
  • PagerOptions的属性 PagerItemWrapperFormatString,NumericPagerItemWrapperFormatString,CurrentPagerItemWrapperFormatString,NavigationPagerItemWrapperFormatString,MorePagerItemWrapperFormatString, 分别改名为 PagerItemTemplate,NumericPagerItemTemplate,CurrentPagerItemTemplate,NavigationPagerItemTemplate,MorePagerItemTemplate
  • PagerOptions.MaxPageIndex属性更名为PagerOptions.MaximumPageNumber;
  • 去除PagerOptions的属性PageIndexBoxWrapperFormatString,GoToPageSectionWrapperFormatString;
  • 去除PagerOptions中页索引框的相关属性ShowPageIndexBox、 ShowGoButton、PageIndexBoxType和GoButtonText,新增PageIndexBoxId和GoToButtonId 属性,用于指定页索引框和跳转按钮;
  • 去除PagerOptions.PagerItemsSeperator属性,分页按钮之间若需使用空格分隔可以用PagerOptions.PagerItemTemplate="&nbsp;{0}&nbsp;"模板来实现;
  • PagedList.StartRecordIndex 重命名为 PagedList.StartItemIndex;
  • PagedList.EndRecordIndex 重命名为 PagedList.EndItemIndex;
  • 被禁用的分页按钮不再使用超链接(<a disabled="disabled"></a>);
  • HtmlHelper.Pager新增Options方法,AjaxHelper.Pager新增Options和AjaxOptions方法;
  • 新增HtmlHelper.LoadMvcPagerScript方法,用于动态加载MvcPager的客户端脚本库(用该方法注册的脚本必须包含在<script>与</script>标签内),支持通过Ajax加载和初始化MvcPager;
  • 对MvcPager客户端jQuery插件进行重构,添加新功能并做了大量代码优化和完善;
  • 同时支持简体中文、繁体中文和英文等多种语言,不再单独发布中文版和英文版;
  • 新增客户端Javascript API,用于获取分页控件属性及跳转到指定页;
  • 添加更多示例项目,覆盖MvcPager所有功能;
  • 重新制作的全新的在线帮助文档;
  • 添加更多服务器端及客户端Javascript单元测试;
  • 仅支持ASP.NET MVC 4.0及更高版本;

升级说明:

从MvcPager 2.0升级到3.0时,需注意以下事项:

  1. PagerOptions的属性 PagerItemWrapperFormatString,NumericPagerItemWrapperFormatString,CurrentPagerItemWrapperFormatString,NavigationPagerItemWrapperFormatString,MorePagerItemWrapperFormatString, 分别改名为 PagerItemTemplate,NumericPagerItemTemplate,CurrentPagerItemTemplate,NavigationPagerItemTemplate,MorePagerItemTemplate;
  2. PagerOptions.MaxPageIndex属性改名为PagerOptions.MaximumPageNumber;
  3. Pager()方法中原actionName、controllerName、routeName、routeValues和htmlAttributes等参数被并入PagerOptions属性中,设置时请设置PagerOptions属性;
  4. Html.Pager()扩展方法重载从原来十个减为四个,升级时请注意使用合适的重载方法;
  5. Ajax.Pager()扩展方法重载从原来十个减为四个,升级时请注意使用合适的重载方法;
  6. PagerOptions中页索引框的相关属性ShowPageIndexBox、ShowGoButton、 PageIndexBoxType和GoButtonText已被去除,启用页索引框时请使用PagerOptions.PageIndexBoxId和 PagerOptions.GoToButtonId属性;
  7. 被禁用的分页按钮不再使用超链接,若需使用,请通过新增的PagerOptions.DisabledPagerItemTemplate属性来设置;
  8. PagerOptions.MaxPageIndex属性更名为PagerOptions.MaximumPageNumber;
  9. PagerOptions.PagerItemsSeperator属性已去除,分页按钮之间若需使用空格分隔可以用PagerOptions.PagerItemTemplate="&nbsp;{0}&nbsp;"模板来实现;
  10. 支持多语言,默认为英文,若需使用简体中文版,请在网站根目录的web.config中system.web配置节下添加如下设置:globalization culture="zh-CN" uiCulture="zh-CN"

运行最低需求:

  1. jQuery 1.7及以上版本;(启用页索引输入或选择框、调用Javascript API或使用Ajax分页模式时必需)
  2. ASP.NET MVC 4.0及以上版本;

3.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(默认),否则会导致分页时数据被加载两次;

MvcPager2.0 中分页初始化失败的问题的更多相关文章

  1. 【解决了一个小问题】golang samara的kafka客户端中使用错误版本号导致初始化失败

    发现在如下代码中存储kafka生产者初始化失败: config.Version = sarama.V0_10_2_1 //V2_2_0_0 producer, err := sarama.NewSyn ...

  2. [读书笔记]C#学习笔记七: C#4.0中微小改动-可选参数,泛型的可变性

    前言 下面就开始总结C#4.0的一些变化了, 也是这本书中最后的一点内容了, 这一部分终于要更新完了. 同时感觉再来读第二遍也有不一样的收获. 今天很嗨的是武汉下雪了,明天周六,一切都是这么美好.哈哈 ...

  3. Hadoop 1.0 和 2.0 中的数据处理框架 - MapReduce

    1. MapReduce - 映射.化简编程模型 1.1 MapReduce 的概念 1.1.1 map 和 reduce 1.1.2 shufftle 和 排序 MapReduce 保证每个 red ...

  4. VS2015 C#6.0 中的那些新特性(转载)

    自动属性初始化 (Initializers for auto-properties) 以前我们是这么写的 为一个默认值加一个后台字段是不是很不爽,现在我们可以这样写 只读属性的初始化(Getter-o ...

  5. Android4.0中蓝牙适配器state machine(状态机)的分析

    今天晓东和大家来一起看一下Android4.0中蓝牙适配器(Bluetooth Adapter)的状态机变化的过程.首先,我们需要了解一下,蓝牙适配器究竟有哪些状态,从代码可以清晰地看到(framew ...

  6. C#6.0 中的那些新特性

    C#6.0 中的那些新特性 前言 VS2015在自己机器上确实是装好了,费了老劲了,想来体验一下跨平台的快感,结果被微软狠狠的来了一棒子了,装好了还是没什么用,应该还需要装Xarmain插件,配置一些 ...

  7. Apache Spark 2.2.0 中文文档 - Spark RDD(Resilient Distributed Datasets)论文 | ApacheCN

    Spark RDD(Resilient Distributed Datasets)论文 概要 1: 介绍 2: Resilient Distributed Datasets(RDDs) 2.1 RDD ...

  8. Apache Spark 2.2.0 中文文档 - SparkR (R on Spark) | ApacheCN

    SparkR (R on Spark) 概述 SparkDataFrame 启动: SparkSession 从 RStudio 来启动 创建 SparkDataFrames 从本地的 data fr ...

  9. [zz]VC2005-应用程序正常初始化失败-0xc0150002

    最近几天被这个问题困惑了许久. 不禁感叹微软的东东真是越做越烂了,也终于明白了时隔12年大家仍然死守VC6的原因.. 用VC2005编译的程序,编译时没有任何错误,但是运行时就是提示“应用程序正常初始 ...

随机推荐

  1. HDOJ-三部曲一(搜索、数学)-1008-Prime Path

    Prime Path Time Limit : 2000/1000ms (Java/Other)   Memory Limit : 131072/65536K (Java/Other) Total S ...

  2. 渐变背景 css3渐变效果及代码

    渐变背景及代码  http://uigradients.com/#Behongo

  3. 破解 abexcrackme2

    系统 : Windows xp 程序 : abexcrackme2 程序下载地址 :http://pan.baidu.com/s/1qXhyt8C 要求 : 注册机编写 使用工具 : OD 可在“PE ...

  4. magento中某个商店实现部分样式

    在magento的某个website中,已经有一个storeview A,现在要求在这个website下再创建一个新的storeview B,现在要求对于storeview B只有主页和分类页应用新的 ...

  5. 第一次sprint团队贡献分改

    201306114322 邵家文 50分 201306114319 陈俊金 10分 201306114320 李新    10分 201306114324 朱浩龙 10分

  6. 六 GPU 并行优化的几种典型策略

    前言 如何对现有的程序进行并行优化,是 GPU 并行编程技术最为关注的实际问题.本文将提供几种优化的思路,为程序并行优化指明道路方向. 优化前准备 首先,要明确优化的目标 - 是要将程序提速 2 倍? ...

  7. EasyUI DateBox 按钮自定义添加功能

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  8. 谈 IIS7.5 Asp.Net模拟用户

    IIS  Asp.模拟用户官方的解释是: 如果要在非默认安全上下文中运行 ASP.NET 应用程序,请使用 ASP.NET 模拟身份验证. 如果您对某个 ASP.NET 应用程序启用了模拟,那么该应用 ...

  9. Dialog样式

    <style name="load_dialog" parent="@android:style/Theme.Dialog"> <item n ...

  10. 基于Spring MVC的Web应用开发(三) - Resources

    基于Spring MVC的Web应用开发(3) - Resources 上一篇介绍了在基于Spring MVC的Web项目中加入日志,本文介绍Spring MVC如何处理资源文件. 注意到本项目的we ...