我的编程空间,编程开发者的网络收藏夹
学习永远不晚

ASP.NET MVC中如何使用MvcPager

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

ASP.NET MVC中如何使用MvcPager

这篇“ASP.NET MVC中如何使用MvcPager”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“ASP.NET MVC中如何使用MvcPager”文章吧。

  一.分页

  首先我们需要创建一个ASP.NETMVC的项目,具体怎么创建就不细说了

  之后我们需要引入控件的dll文件

  我是在官网下的案例,直接引用的,

  当然你们也可以从NuGet包中引用

  找到项目,点击右键会有一个管理NuGet程序包,我们打开它

  输入Webdiyer找到,并安装

  实体类

  Article.cs

  publicclassArticle

  {

  [Display(Name="文章编号")]

  publicintID{get;set;}

  [Display(Name="文章标题")]

  [MaxLength(200)]

  publicstringTitle{get;set;}

  [Display(Name="文章内容")]

  publicstringContent{get;set;}

  [Display(Name="发布日期")]

  publicDateTimePubDate{get;set;}

  [Display(Name="作者")]

  [MaxLength(20)]

  publicstringAuthor{get;set;}

  [Display(Name="文章来源")]

  [MaxLength(20)]

  publicstringSource{get;set;}

  }

  Cotroller

  publicActionResultAjaxPaging(intid=1)

  {

  using(vardb=newDataContext())

  {

  varmodel=db.Articles.OrderByDescending(a=>a.PubDate).ToPagedList(id,5);

  //判断是否是AJAX请求,如果为true,就返回分部视图

  if(Request.IsAjaxRequest())

  returnPartialView("_ArticleTable",model);

  returnView(model);

  }

  }

  应该可以看到,我们引用了这个分页控件的时候,我们返回的不在是List<T>,而是PagedList<T>

  后面的ToPagedList(起始页,每页显示条数),起始页需要我们在本方法中定义intid=1

  View:

  @modelPagedList<MVCPager_Text.Models.Article>

  @usingWebdiyer.WebControls.Mvc;

  //这个ID就是我们在分页需要来更新的ID

  <divid="articles">

  @Html.Partial("_ArticleTable",Model)

  </div>

  @sectionscripts

  {

  @{Html.RegisterMvcPagerScriptResource();}

  //这句话是必须的,用来注册MVCPager,如果没有可能造成Ajax请求无反应

  }

  在视图中我们引用的集合同样也是PagedList<T>

  @sectionscripts

  {

  @{Html.RegisterMvcPagerScriptResource();}

  //这句话是必须的,用来注册MVCPager,如果没有可能造成Ajax请求无反应

  }

  注意:我们的视图是默认使用布局页layout

  我们不能使布局页为Null@{layout=null},这样会使我们的异步分页无效,我们到控制器的Requset.isAjaxRequset()这一块会一直是false

  创建分部视图:

  创建完分布页,里面的使我们需要展示的表格

  _ArticleTable:

  @modelPagedList<MVCPager_Text.Models.Article>

  @usingWebdiyer.WebControls.Mvc;

  <tableclass="tabletable-borderedtable-striped">

  <tr>

  <thclass="nowrap">序号</th>

  <th>

  @Html.DisplayNameFor(model=>model.Title)

  </th>

  <th>

  @Html.DisplayNameFor(model=>model.PubDate)

  </th>

  <th>

  @Html.DisplayNameFor(model=>model.Author)

  </th>

  <th>

  @Html.DisplayNameFor(model=>model.Source)

  </th>

  </tr>

  @{inti=0;}

  @foreach(variteminModel)

  {

  <tr>

  <td>@(Model.StartItemIndex+i++)</td>

  <td>

  @Html.DisplayFor(modelItem=>item.Title)

  </td>

  <td>

  @Html.DisplayFor(modelItem=>item.PubDate)

  </td>

  <td>

  @Html.DisplayFor(modelItem=>item.Author)

  </td>

  <td>

  @Html.DisplayFor(modelItem=>item.Source)

  </td>

  </tr>

  }

  </table>

  <divclass="text-center">

  @Ajax.Pager(Model,newPagerOptions{PageIndexParameterName="id",ContainerTagName="ul",CssClass="pagination",CurrentPagerItemTemplate="<liclass=\"active\"><ahref=\"#\">{0}</a></li>",DisabledPagerItemTemplate="<liclass=\"disabled\"><a>{0}</a></li>",PagerItemTemplate="<li>{0}</li>"}).AjaxOptions(a=>a.SetUpdateTargetId("articles"))

  </div>

  其中需要注意的是:

  PageIndexParameterName是我们控制器中的参数id,需要保持一致

  我们需要使用的是@Ajax.Pager(),而不是@Html.Pager

  AjaxOptions(a=>a.SetUpdateTargetId("articles"))在官网的意思是用于构建MvcAjaxOptions对象的方法

  我们再来看一下

  MvcAjaxOptions对象

  UpdateTargetId:获取或设置要使用服务器响应来更新的DOM元素的ID。这个参数ID就使我们在视图中div的Id

  上面我们用的是AjaxOptions(a=>a.SetUpdateTargetId("articles"))这个写法,

  MvcAjaxOptions对象怎么使用呢

  @Ajax.Pager(Model,newPagerOptions{PageIndexParameterName="id",ContainerTagName="ul",CssClass="pagination",CurrentPagerItemTemplate="<liclass=\"active\"><ahref=\"#\">{0}</a></li>",DisabledPagerItemTemplate="<liclass=\"disabled\"><a>{0}</a></li>",PagerItemTemplate="<li>{0}</li>"},newMvcAjaxOptions{UpdateTargetId="RecordList"})

  通过上面这些我们的异步分页就已经做完了

  二.复选框选中

  当我们点击上一页或者下一页的时候我们需要保持之前的复选框状态,

  并不会因为我们点击上一页或者下一页而改变状态

  复选框选中的前提就是我们需要异步刷新,只刷新表格,不刷新页面

  在这个分页控件上,有我们需要的对象

  MvcAjaxOptions对象

  来看一下这个对象中我们需要用到的属性,一共只有两个属性我们可以用到:

  OnBegin:获取或设置要在更新页面之前立即调用的JavaScript函数的名称。

  OnSuccess:获取或设置在成功更新页面之后要调用的JavaScript函数。

  Code奉上:

  分页中我们需要在MvcAjaxOptions中添加这两个属性,一个是在更新页面之前调用的js函数(OnBegin),一个是在更新页面之后调用的JS函数(OnSuccess)

  @Ajax.Pager(Model,newPagerOptions{

  PageIndexParameterName="id",

  NumericPagerItemCount=5,

  CssClass="pagination",

  CurrentPagerItemTemplate="<liclass=\"active\"><ahref=\"#\">{0}</a></li>",

  DisabledPagerItemTemplate="<liclass=\"disabled\"><a>{0}</a></li>",

  PagerItemTemplate="<li>{0}</li>",Id="bootstrappager"

  },newMvcAjaxOptions{OnBegin="GetCheckbox()",OnSuccess="OnSuccess"}).AjaxOptions(a=>a.SetUpdateTargetId("RecordList").SetDataFormId("searchForm"))

  GetCheckbox()函数

  //定义一个数组来存储,选中的ID

  varselect=newArray;

  functionGetCheckbox(){

  //.single是复选框的class

  $(".single").each(function(){

  //判断复选框的状态,如果选中为true

  if($(this).prop('checked')){

  //判断选中的复选框的val()值是否存在在该数组中select

  varindex=$.inArray($(this).val(),select);

  //不存在则会返回-1,不存在向数组中写入

  if(index==-1){

  select.push($(this).val())

  }

  }

  else{

  //如果没有选中,有可能会取消选中,我们要判断当前的页面没有选中的$(this).val()值是否在数组中select

  varindex=$.inArray($(this).val(),select);

  //如果存在则会返回存在数值在数组中的下标

  if(index>=0){

  //删除该下标的值

  select.splice(index);

  }

  }

  })

  }

  OnSuccess();

  functionOnSuccess(){

  $(".single").each(function(){

  //当更新成功之后,我们需要判断当前页面的复选框的$(this).val()是否存在于数组中select

  varindex=$.inArray($(this).val(),select)

  //存在则返回下标

  if(index>=0){

  //console.log("index="+index+",select[Index]="+select[index])

  如果$(this).val()的值与数组中下标的值相同,则给它处于选中状态

  if($(this).val()==select[index]){

  $(this).prop('checked','checked');

  }

  }

  })

  }

  这样就可以实现复选的选中,

  不过需要注意的是:

  当我第一次加载进入页面的时候,就算你选中几个复选框,数组中也是没有数据的

  因为只有你点击下一页或者是上一页的时候才会触发函数,

  所以我们也需要在不点击的时候进行当前页的一个复选框的选中判定

  当我进入这个页面,选中复选框之后,就点击按钮的时候也需要进行选中

以上就是关于“ASP.NET MVC中如何使用MvcPager”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

ASP.NET MVC中如何使用MvcPager

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

ASP.NET Core MVC中如何使用Tag Helper组件

这篇文章主要介绍ASP.NET Core MVC中如何使用Tag Helper组件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Tag Helper 组件 - 简介在 ASP.NET Core 2 还为我们带来了一个
2023-06-29

MVC怎么使用MvcPager实现分页效果

今天小编给大家分享一下MVC怎么使用MvcPager实现分页效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、数据库表U
2023-06-29

ASP.NET MVC 2中如何使用开源工具Nupack

今天就跟大家聊聊有关ASP.NET MVC 2中如何使用开源工具Nupack,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Nupack是一个打包好的.NET工具集,Nupack团队开
2023-06-17

ASP.NET MVC授权过滤器如何使用

这篇文章主要介绍“ASP.NET MVC授权过滤器如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ASP.NET MVC授权过滤器如何使用”文章能帮助大家解决问题。过滤器过滤器(Filter)
2023-06-29

ASP.NET MVC如何使用Identity增删改查用户

这篇文章主要讲解了“ASP.NET MVC如何使用Identity增删改查用户”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ASP.NET MVC如何使用Identity增删改查用户”吧!在
2023-07-04

如何理解ASP.NET MVC 中的Web Pages

今天就跟大家聊聊有关如何理解ASP.NET MVC 中的Web Pages,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。I:Web Pages 1.0中以“_”开头的特别文件(文件命
2023-06-17

ASP.NET Core MVC中的模型怎么使用

本篇内容介绍了“ASP.NET Core MVC中的模型怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.模型绑定ASP.NET C
2023-06-30

如何理解ASP.NET MVC 3 Beta中的Chart

这篇文章给大家介绍如何理解ASP.NET MVC 3 Beta中的Chart,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。小编将介绍Chart的使用。包括Chart数据源的配置、Chart的显示、Chart保存三个方面
2023-06-17

ASP.NET MVC 3中的Razor特性怎么使用

本篇内容主要讲解“ASP.NET MVC 3中的Razor特性怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ASP.NET MVC 3中的Razor特性怎么使用”吧!开工 目录在_Vie
2023-06-17

ASP.NET MVC中怎么使用Oauth2.0验证身份

这期内容当中小编将会给大家带来有关ASP.NET MVC中怎么使用Oauth2.0验证身份,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. OAuth3.0中的角色  ● Resource Owner:
2023-06-19

如何使用Html.RenderPartial()将任意数据传递给ASP.NET MVC

要将任意数据传递给ASP.NET MVC视图中的Html.RenderPartial()方法,可以使用ViewData或ViewBag来存储和传递数据。下面是一些示例代码,演示如何使用Html.RenderPartial()方法将任意数据传
2023-09-27

ASP.NET中httpHandler如何使用

本篇文章为大家展示了ASP.NET中httpHandler如何使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Asp.net系统框架自身有一个http处理的逻辑。这个逻辑由machine.conf
2023-06-18

ASP.NET中Ajax如何使用

在ASP.NET中,可以使用Ajax进行异步通信和更新页面,以下是使用Ajax的步骤:1. 引入jQuery库:在页面中引入jQuery库,可以通过将以下代码添加到页面的标签中来实现:```html```2. 创建一个ASP.NET Web
2023-08-14

编程热搜

目录