杨涛老师MvcPager示例

杨涛老师插件地址:http://www.webdiyer.com/mvcpager

杨涛老师网站上示例写的很详细了,参考他的示例和帮助文档就可以运用的很好了,有经验的同学可以直接参考官方示例。

一、标准的ajax分页

1、新建一个空的MVC项目

2、搜索安装 MvcPager

3、控制器中添加方法

 1         /// <summary  2         /// 单个分页  3         /// </summary> 4         /// <returns></returns>
 5         [HttpGet]
 6         public ActionResult SinglePage(int id = 1)
 7         {
 8             List<Article> articles = new List<Article>();
 9             for (int i = 0; i < 10; i++)
10             {
11                 Article a = new Article();
12                 a.ID = id;
13                 a.Title = "Title " + id;
14                 a.Content = "Content " + id;
15                 articles.Add(a);
16             }               //注:看官网问题留言有部分同学在看了杨老师demo之后不清楚如何根据条件去数据库取对应页的数据,而不是将集合数据取出来再进行分页,其实只要把源码下载下来看一下里面方法的实现就好了。
17             PagedList<Article> model = new PagedList<Article>(articles, id, 10, 100);//articles-当前页记录、id-页码、10-每页记录条数、100-总记录条数
18             if (Request.IsAjaxRequest())
19                 return PartialView("_ArticleList", model);
20             return View(model);
21         }

4、添加视图 SinglePage.cshtml、分部视图 _ArticleList.cshtml、_ArticleTable.cshtnl

SinglePage.cshtml

 1 @using Webdiyer.WebControls.Mvc
 2 @model PagedList<MvcPagerTest.Models.Article>
 3
 4 <div id="articles">
 5     @Html.Partial("_ArticleList", Model)
 6 </div>
 7 @section scripts
 8 {
 9     @{Html.RegisterMvcPagerScriptResource();}
10 }

_ArticleList.cshtml

 1 @using Webdiyer.WebControls.Mvc
 2 @model PagedList<MvcPagerTest.Models.Article>
 3
 4 <div class="text-center">
 5     @Ajax.Pager(Model, new PagerOptions { PageIndexParameterName = "id", ContainerTagName = "ul", CssClass = "pagination", CurrentPagerItemTemplate = "<li class=\"active\"><a href=\"#\">{0}</a></li>", DisabledPagerItemTemplate = "<li class=\"disabled\"><a>{0}</a></li>", PagerItemTemplate = "<li>{0}</li>" }).AjaxOptions(a => a.SetUpdateTargetId("articles"))
 6 </div>
 7
 8 @{ Html.RenderPartial("_ArticleTable"); }
 9
10 <div class="text-center">
11     @Ajax.Pager(Model, new PagerOptions { AlwaysShowFirstLastPageNumber = true, PageIndexParameterName = "id", ContainerTagName = "ul", CssClass = "pagination", CurrentPagerItemTemplate = "<li class=\"active\"><a href=\"#\">{0}</a></li>", DisabledPagerItemTemplate = "<li class=\"disabled\"><a>{0}</a></li>", PagerItemTemplate = "<li>{0}</li>" }).AjaxOptions(a => a.SetUpdateTargetId("articles"))
12 </div>

_ArticleTable.cshtnl

 1 @using Webdiyer.WebControls.Mvc
 2 @model PagedList<MvcPagerTest.Models.Article>
 3
 4 <table class="table table-bordered table-striped">
 5     <tr>
 6         <th class="nowrap">序号</th>
 7         <th>
 8             @Html.DisplayNameFor(model => model.Title)
 9         </th>
10         <th>
11             @Html.DisplayNameFor(model => model.Content)
12         </th>
13     </tr>
14     @{ int i = 0;}
15     @foreach (var item in Model)
16     {
17         <tr>
18             <td>@(Model.StartItemIndex + i++)</td>
19             <td>
20                 @Html.DisplayFor(modelItem => item.Title)
21             </td>
22             <td>
23                 @Html.DisplayFor(modelItem => item.Content)
24             </td>
25         </tr>
26     }
27 </table>

5、运行

运行程序会出现错误:以下各节已定义,但尚未为布局页“~/Views/Shared/_Layout.cshtml”呈现:“Scripts”。

解决方法:在_Layout.cshtml中添加代码 @RenderSection("scripts", required: false)

运行结果:

二、多个ajax分页

多个ajax分页和单个ajax分页类似,这里要注意的是:

1、不同的分页控件要定义不同页码参数名称(如下:第一个定义 为pageIndex,第二个定义为 id)

2、后台通过自定义参数来区分获取的是哪个分页的数据,这里通过AddRouteValue("param","value")来添加


1

2

//PageIndexParameterName设置页码参数名称; @Ajax.Pager(Model).Options(o=>o.AddRouteValue("target","blog1"))生成分页链接的路由的值。

@Ajax.Pager(Model, new PagerOptions { AlwaysShowFirstLastPageNumber = true, PageIndexParameterName = "id", ContainerTagName = "ul", CssClass = "pagination", CurrentPagerItemTemplate = "<li class=\"active\"><a href=\"#\">{0}</a></li>", DisabledPagerItemTemplate = "<li class=\"disabled\"><a>{0}</a></li>", PagerItemTemplate = "<li>{0}</li>" }).Options(o => o.AddRouteValue("target""blog2")).AjaxOptions(a => a.SetUpdateTargetId("blog2s"))


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

/// <summary>

/// 多个分页

/// </summary>

/// <returns></returns>

[HttpGet]

public ActionResult MultiPage(int pageIndex = 1,int id = 1)

{

    if (Request.IsAjaxRequest())

    {

        string target = Request.QueryString["target"];//通过target来区分获取的是哪个分页数据。

        if (target == "blog1")

        {

            return PartialView("_Blog1List"new PagedList<Blog1>(GetBlog1s(pageIndex), pageIndex, 10, 100));//页码参数名称为pageIndex

        }

        if (target == "blog2")

        {

            return PartialView("_Blog2List"new PagedList<Blog1>(GetBlog1s(id), id, 10, 100));//页码参数名称为id

        }

    }

    Blog blog = new Blog();

    blog.Blog1s = new PagedList<Blog1>(GetBlog1s(pageIndex), pageIndex,10, 100);

    blog.Blog2s = new PagedList<Blog2>(GetBlog2s(id), id, 10, 100);

    return View(blog);

}

public List<Blog1> GetBlog1s(int pageIndex)

{

    List<Blog1> blog1s = new List<Blog1>();

    for (int i = 0; i < 10;i++)

    {

        blog1s.Add(new Blog1(pageIndex, "name1-" + pageIndex, "content1-"+ pageIndex));

    }

    return blog1s;

}

public List<Blog2> GetBlog2s(int id)

{

    List<Blog2> blog2s = new List<Blog2>();

    for (int i = 0; i < 10; i++)

    {

        blog2s.Add(new Blog2(id, "name2-" + id, "content2-" + id));

    }

    return blog2s;

}

示例地址(vs2015):https://files.cnblogs.com/files/zhaorong0912/MvcPagerDemo.rar

最后:文章旨在记录自己的所学所用,如有错误,希望各位能及时指出,本人不胜感激!

原文地址:https://www.cnblogs.com/sjqq/p/9152931.html

时间: 2024-10-03 09:32:36

杨涛老师MvcPager示例的相关文章

Linq多表链接分页,Select new{&quot;需要的字段列..&quot;},配合杨涛Mvcpager,前台遍历展示自定义字段

题前:,Select new{"需要的字段列.."}好处,减少不必要数据的查询,尤其是分布式的时候,网络再不好的情况下,而不必要的数据又很多,Select new{"需要的字段列.."}好处明显 如题,Linq多表链接分页,Select new{"需要的字段列.."},配合杨涛Mvcpager,前台遍历展示自定义字段 (1)  我的例子是,(Tb_Mnager)管理员表与(Tb_Role)角色表联查,返回两个表部分字段的组合 如下控制器代码: p

杨亦涛老师分享coreldraw2019快捷键大全

运行 Visual Basic 应用程序的编辑器 [Alt]+[F11]启动「这是什么?」帮助 [Shift]+[F1]回复到上一个动作 [Ctrl]+[Z]回复到上一个动作 [Alt]+[BackSpace]复制选取的物件并置于「剪贴簿」中 [Ctrl]+[C]复制选取的物件并置于「剪贴簿」中 [Ctrl]+[INS]将指定的属性从另一个物件复制至选取的物件 [Ctrl]+[Shift]+[A]剪下选取的物件并置于「剪贴簿」中 [Ctrl]+[X]剪下选取的物件并置于「剪贴簿」中 [Shift

杨校老师课堂之JavaScript定时器案例的红绿灯设计

使用JavaScript知识完成红绿灯案例 演示效果: 示例代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>红绿灯倒计时</title> <style> .box { width: 250px; height: 52px; padding: 15px 30px; border: 2px solid #ccc; border-

C# - 杨涛分页控件AspNetPager sql分页篇

http://www.webdiyer.com/downloads/ 前台 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> <%@ Register Assembly="AspNetPager" Namespace="Wuqi.Webdi

跟开涛老师学shiro -- 身份验证

身份验证,即在应用中谁能证明他就是他本人.一般提供如他们的身份ID一些标识信息来表明他就是他本人,如提供身份证,用户名/密码来证明. 在shiro中,用户需要提供principals (身份)和credentials(证明)给shiro,从而应用能验证用户身份: principals:身份,即主体的标识属性,可以是任何东西,如用户名.邮箱等,唯一即可.一个主体可以有多个principals,但只有一个Primary principals,一般是用户名/密码/手机号. credentials:证明

ASP.NET MVC中使用MvcPager异步分页+在分页中复选框下一页上一页也保持选中

ASP.NET MVC 分页使用的是作者杨涛的MvcPager分页控件  地址:http://www.webdiyer.com/mvcpager/demos/ajaxpaging/ 这个分页控件在里面有很好的的案例,及注意事项 分页在我们的项目中是经常需要使用到的,普通分页体验是在是太差了,每一次点击下一步,会造成页面刷新,自己都看不过去了 ,O(∩_∩)O哈哈~ 所以这次我们要使用这个控件在做一个MvcPager的异步分页,分页的时候我们只刷新表格,而不是刷新页面 下面我们开始吧 一.分页 首

(菜鸟要飞系列)五,基于Asp.Net MVC5的后台管理系统(添加数据表的分页功能)

献上代码 1 public ActionResult SelectAll(int id=1) 2 { 3 4 List<UserModel> arrayUserModel = new List<UserModel>(); 5 string strText = Request.Form["find"]; //接参 6 OracleHelper ora = new OracleHelper(); 7 string sql = "select * from

关于Ajax实现的简单示例

一.代码示例 关于Ajax的基本概念(包括XMLHttpRequest对象及其相关方法属性)移步这里(w3school中文版)学习了解. <!doctype html> <html lang = "en"> <head> <meta charset = "utf-8"> <title>使用Ajax异步加载数据</title> <script type = "text/javasc

小学生家长&quot;课业负担&quot;调查:老师对代劳默许p

有趣的是,每年都有1%的黄金,也就是大约40吨会经过牙医的手,变成一颗颗亮闪闪的大金牙.巴育没有给建议,称任何决定必须由她本人做出.夏同学说,他们专业在长安大学是王牌专业,毕业生很抢手11月1日,各大交易平台给出的比特币买入价大约为1比特币1250元,而10日这一数字攀升至2000元附近.但是5年过去了,后防线上除了范德萨退休,其余还是那几个,但他们会老的啊!"去年,这13万户居民平均故障停电时间下降至分钟.卖的不如买的多,优质"四川造"如何通过电商渠道更多"走出去