返回顶部
首页 > 资讯 > 前端开发 > node.js >ASP.NET MVC中如何使用MvcPager
  • 377
分享到

ASP.NET MVC中如何使用MvcPager

2024-04-02 19:04:59 377人浏览 薄情痞子
摘要

这篇“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”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网node.js频道。

--结束END--

本文标题: ASP.NET MVC中如何使用MvcPager

本文链接: https://lsjlt.com/news/96635.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • ASP.NET MVC中如何使用MvcPager
    这篇“ASP.NET MVC中如何使用MvcPager”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来...
    99+
    2024-04-02
  • MVC使用MvcPager实现分页效果
    本文实例为大家分享了MVC使用MvcPager实现分页效果的具体代码,供大家参考,具体内容如下 一、数据库表 USE [StudentDB] GO   SET ANSI_NULLS...
    99+
    2024-04-02
  • MVC怎么使用MvcPager实现分页效果
    今天小编给大家分享一下MVC怎么使用MvcPager实现分页效果的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、数据库表U...
    99+
    2023-06-29
  • ASP.NET Core MVC中如何使用Tag Helper组件
    这篇文章主要介绍ASP.NET Core MVC中如何使用Tag Helper组件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!Tag Helper 组件 - 简介在 ASP.NET C...
    99+
    2023-06-29
  • ASP.NET MVC 2中如何使用开源工具Nupack
    今天就跟大家聊聊有关ASP.NET MVC 2中如何使用开源工具Nupack,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。Nupack是一个打包好的.NET工具集,Nupack团队开...
    99+
    2023-06-17
  • ASP.NET MVC授权过滤器如何使用
    这篇文章主要介绍“ASP.NET MVC授权过滤器如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“ASP.NET MVC授权过滤器如何使用”文章能帮助大家解决问题。过滤器过...
    99+
    2023-06-29
  • Asp.net MVC 中Ajax的使用方法
    本篇内容介绍了“Asp.net MVC 中Ajax的使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2024-04-02
  • ASP.NET MVC如何使用Identity增删改查用户
    这篇文章主要讲解了“ASP.NET MVC如何使用Identity增删改查用户”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ASP.NET MVC如何使用Identity...
    99+
    2023-07-04
  • ASP.NET Core MVC中使用Tag Helper组件
    Tag Helper 组件 - 简介 之前我们已经在几个文章中谈到了Tag Helpers,这一次我们会讨论其它有关的事情。 在 ASP.NET Core 2 还为我们带来了一个新功...
    99+
    2024-04-02
  • 如何理解ASP.NET MVC 中的Web Pages
    今天就跟大家聊聊有关如何理解ASP.NET MVC 中的Web Pages,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。I:Web Pages 1.0中以“_”开头的特别文件(文件命...
    99+
    2023-06-17
  • ASP.NET Core MVC中的模型怎么使用
    本篇内容介绍了“ASP.NET Core MVC中的模型怎么使用”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1.模型绑...
    99+
    2023-06-30
  • ASP.NET MVC 如何使用索引提高响应速度?
    在处理大量数据时,ASP.NET MVC 应用程序可能会变得非常缓慢,这可能会降低用户体验并导致用户流失。为了解决这个问题,可以使用索引来提高 ASP.NET MVC 应用程序的响应速度。在本文中,我们将探讨什么是索引以及如何在 ASP....
    99+
    2023-08-12
    索引 响应 spring
  • 如何使用 Spring Boot 来优化 ASP.NET MVC 的索引?
    Spring Boot 和 ASP.NET MVC 是两种非常流行的 Web 开发框架,它们都有着各自的优点和特点。但是,当我们需要优化 ASP.NET MVC 的索引时,我们可以使用 Spring Boot 提供的一些工具和技术来实现。本...
    99+
    2023-08-12
    索引 响应 spring
  • 如何理解ASP.NET MVC 3 Beta中的Chart
    这篇文章给大家介绍如何理解ASP.NET MVC 3 Beta中的Chart,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。小编将介绍Chart的使用。包括Chart数据源的配置、Chart的显示、Chart保存三个方面...
    99+
    2023-06-17
  • ASP.NET MVC 3中的Razor特性怎么使用
    本篇内容主要讲解“ASP.NET MVC 3中的Razor特性怎么使用”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ASP.NET MVC 3中的Razor特性怎么使用”吧!开工 目录...
    99+
    2023-06-17
  • ASP.NET MVC中怎么使用Oauth2.0验证身份
    这期内容当中小编将会给大家带来有关ASP.NET MVC中怎么使用Oauth2.0验证身份,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。1. OAuth3.0中的角色  ● Resource Owner:...
    99+
    2023-06-19
  • 如何使用Html.RenderPartial()将任意数据传递给ASP.NET MVC
    要将任意数据传递给ASP.NET MVC视图中的Html.RenderPartial()方法,可以使用ViewData或ViewBa...
    99+
    2023-09-27
    ASP.NET
  • ASP.NET MVC使用异步Action的方法
    在没有使用异步Action之前,在Action内,比如有如下的写法: public ActionResult Index() { CustomerHelper cHelper...
    99+
    2022-11-13
    ASP.NET MVC 异步Action
  • ASP.NET中httpHandler如何使用
    本篇文章为大家展示了ASP.NET中httpHandler如何使用,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Asp.net系统框架自身有一个http处理的逻辑。这个逻辑由machine.conf...
    99+
    2023-06-18
  • ASP.NET中Ajax如何使用
    在ASP.NET中,可以使用Ajax进行异步通信和更新页面,以下是使用Ajax的步骤:1. 引入jQuery库:在页面中引入jQue...
    99+
    2023-08-14
    ASP.NET Ajax
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作