ASP.NET MVC4 Razor模板简易分页效果

2025-05-29 0 101

一、无数据提交

第一步,建立一个 Controller命名为PageIndex的空控制器,自定义一个方法如下:

?

1

2

3

4

5

6

7

8

9
public ActionResult PageIndex(string action, string controller, int currentPage, int pageCount)

{

//int count = db.Product.Count();

ViewBag.PageCount = pageCount;//从操作中获取总数据页数将传入分页视图页面

ViewBag.CurrentPage = currentPage;//从操作中获取当前页数将传入分页视图页面

ViewBag.action = action;

ViewBag.controller = controller;

return PartialView();

}

传入四个参数:

action:操作(要分页的视图的操作,默认为Index);

controller:控制器;

currentPage:当前页数;

pageCount:数据总页数

第二步:添加视图(PageIndex)

?

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

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60
@if (ViewBag.PageCount == null || ViewBag.PageCount == 0)

    {

    <span>您好,当前没有数据显示!</span>

    }

    else

    {

    if (ViewBag.CurrentPage <= 10)

  {

  <span><a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = 1 }, null)">

首页</a>|</span>

  }

else

{

<a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = 1 }, null)">

首页</a>

<span><a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = ViewBag.CurrentPage - 10 }, null)">

...</a> </span>

}

for (int i = ViewBag.CurrentPage - 3; i < ViewBag.CurrentPage + 3; i++)

{

if (i <= 0)

{

continue;

}

if (i > ViewBag.PageCount)

{

break;

}

<span><a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = i }, null)">

第 @i 页</a>|</span>

}

if (ViewBag.CurrentPage > 1)

{

<span><a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = ViewBag.CurrentPage - 1 }, null)">

上一页</a>|</span>

}

if (ViewBag.PageCount > ViewBag.CurrentPage)

{

<span><a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = ViewBag.CurrentPage + 1 }, null)">

下一页</a></span>

}

if (ViewBag.CurrentPage == ViewBag.PageCount || ViewBag.CurrentPage >= ViewBag.PageCount - 10)

{

<a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = ViewBag.PageCount }, null)">

尾 页</a>

}

else

{

<span><a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = ViewBag.CurrentPage + 10 }, null)">

...</a></span>

<a href="@Url.Action(ViewBag.action, ViewBag.controller, new { PageIndex = ViewBag.PageCount }, null)">

尾 页</a>

}

<span style="padding-left: 20px">当前页数: @ViewBag.CurrentPage | 共 @ViewBag.PageCount 页

</span>

    }

第三步:操作的视图的控制器修改

?

1

2

3

4

5

6

7

8
public ViewResult Index(int? pageIndex)

    {

      int pageInd = pageIndex.HasValue ? pageIndex.Value : 1;

      ViewBag.PageCount = (int)Math.Ceiling(result.Count() / 20.0);

      //这里的是take,按照每页20个显示

      return View(result.OrderBy(t => t.PID).Skip((pageInd - 1) * 20).Take(20));

    }

第四步:页面调用(即最后一步)

复制代码 代码如下:

@Html.Action("PageIndex", "Product", new { action = "Index", controller = "Log", pageCount = ViewBag.PageCount, currentPage = ViewBag.CurrentPage })

一般来说,数据都是变动的。

二、有数据提交

第一步:建立一个 Controller命名为PageIndex的空控制器,自定义一个方法如下:

?

1

2

3

4

5

6
public ActionResult PageIndexKey(int currentPage, int pageCount)

{

ViewBag.PageCount = pageCount;//从操作中获取总数据页数将传入分页视图页面

ViewBag.CurrentPage = currentPage;//从操作中获取当前页数将传入分页视图页面

return PartialView();

}

第二步:建立分布视图

?

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

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61
<script>

$(function () {

$("#pageingByForm a").click(function (event) {

$("#pageIndex").val($(this).attr("pageIndex"));

//$(this).parent("Form").submit();

document.getElementsByTagName("Form").item(0).submit();

event.preventDefault();

});

});

</script>

@Html.Hidden("pageIndex")

<div id="pageingByForm">

@if (ViewBag.PageCount == null || ViewBag.PageCount == 0)

{

<span>当前没有数据</span>

}

else

{

if (ViewBag.CurrentPage <= 10)

{

<span><a pageindex="1" href="#">首页</a>|</span>

}

else

{

<span><a pageindex="1" href="#">首页</a>|</span>

<span><a pageIndex="@(ViewBag.CurrentPage - 10)" href="#">...</a>|</span>

}

for (int i = ViewBag.CurrentPage - 3; i < ViewBag.CurrentPage + 3; i++)

{

if (i <= 0)

{

continue;

}

if (i > ViewBag.PageCount)

{

break;

}

<span><a pageIndex="@i" href="#">第 @i 页</a>|</span>

}

if (ViewBag.CurrentPage >1)

{

<span><a pageIndex="@(ViewBag.CurrentPage - 1)" href="#">上一页</a>|</span>

}

if (ViewBag.PageCount > ViewBag.CurrentPage)

{

<span><a pageIndex="@(ViewBag.CurrentPage + 1)" href="#">下一页</a></span>

}

if (ViewBag.CurrentPage >= ViewBag.PageCount - 10)

{

}

else

{

<span><a pageIndex="@(ViewBag.CurrentPage + 10)" href="#">...</a>|</span>

<span><a pageIndex="@ViewBag.PageCount" href="#">尾 页</a></span>

}

<span style="padding-left: 20px">当前页数: @ViewBag.CurrentPage | 共 @ViewBag.PageCount 页

</span>

}

</div>

第三步:修改操作视图和控制器

?

1

2

3

4

5

6
public ViewResult Index(int? pageIndex ,string search)

  {

  int pageInd = pageIndex.HasValue ? pageIndex.Value : 1;

  ViewBag.PageCount = (int)Math.Ceiling(result.Count() / 20.0);

  return View(result.OrderBy(t => t.PID).Skip((pageInd - 1) * 20).Take(20));

  }

视图(页面调用):
@using (Html.BeginForm())
{

根据性别得到查询结果

性别: @Html.TextBox("sex")

<input type="submit" value="查询" />

@Html.Action("PageIndexKey", "PageIndex", new { pageCount = ViewBag.PageCount, currentPage = ViewBag.CurrentPage })

}

Example:

?

1

2

3

4

5

6

7
//数据,一个list的集合

List<string> s = new List<string>();

s.Add("张军");

ViewBag.PageCount = (int)Math.Ceiling(s.Count() / 20.0);

return View(s.Skip((pageInd - 1) * 20).Take(20));

@Html.Action("PageIndex", "PageIndex",

new { action = "", controller = "", pageCount = ViewBag.PageCount, currentPage = ViewBag.CurrentPage })

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持快网idc。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 ASP.NET MVC4 Razor模板简易分页效果 https://www.kuaiidc.com/100376.html

相关文章

发表评论
暂无评论