- 论坛徽章:
- 0
|
MVC 分页 JQuery Pager
导入的包
Html代码- 1.<script type="text/javascript" src="@Url.Content("~/Content/Admin/js/jquery/jquery.pager.js")"></script>
- 2.<link rel="stylesheet" type="text/css" href="@Url.Content("~/Content/Admin/Pager.css")" />
- <script type="text/javascript" src="@Url.Content("~/Content/Admin/js/jquery/jquery.pager.js")"></script>
- <link rel="stylesheet" type="text/css" href="@Url.Content("~/Content/Admin/Pager.css")" />
复制代码 Index.aspx
Html代码- 1.@{
- 2. ViewBag.Title = "Index";
- 3.}
- 4.@using com.fh.Models
- 5.@model DemoList
- 6.<div id="sourcelist">
- 7. @* @{
- 8. Html.RenderAction("PageSelected", new { cuurentPageIndex = 0 });
- 9. }*@
- 10.
- 11. @Html.Partial("_TableList",Model)
- 12.</div>
- 13.<script type="text/javascript">
- 14. $(document).ready(function () {
- 15. PageClick(1); //$(".itemspager").pager({ pagenumber: currentPageNumber, pagecount: totalPageNumber, buttonClickCallback: PageClick });
- 16. });
- 17.
- 18.</script>
- @{
- ViewBag.Title = "Index";
- }
- @using com.fh.Models
- @model DemoList
- <div id="sourcelist">
- @* @{
- Html.RenderAction("PageSelected", new { cuurentPageIndex = 0 });
- }*@
- @Html.Partial("_TableList",Model)
- </div>
- <script type="text/javascript">
- $(document).ready(function () {
- PageClick(1); //$(".itemspager").pager({ pagenumber: currentPageNumber, pagecount: totalPageNumber, buttonClickCallback: PageClick });
- });
- </script>
复制代码 _TableList.cshtml(PartialView)
Html代码- 1.@using com.fh.Models
- 2.@model DemoList
- 3.<table>
- 4. <thead>
- 5. <tr>
- 6. <td>
- 7. ID
- 8. </td>
- 9. <td>
- 10. Name
- 11. </td>
- 12. </tr>
- 13. </thead>
- 14. <tbody>
- 15. @foreach (var item in Model.DataSource)
- 16. {
- 17. <tr>
- 18. <td>@item.ID
- 19. </td>
- 20. <td>@item.Name
- 21. </td>
- 22. </tr>
- 23. }
- 24. </tbody>
- 25. </table>
- 26.
- 27. <div class="clear">
- 28.</div>
- 29.@if (Model.TotalItems > 0)
- 30.{
- 31. if (Model.TotalItems <= 5)
- 32. {
- 33. <div class="pagination">
- 34. <div class="results">
- 35. Showing 1 to @Model.TotalItems of @Model.TotalItems (1 Pages)</div>
- 36. </div>
- 37. }
- 38. else
- 39. {
- 40. <div class="itemspager pagination">
- 41. </div>
- 42. }
- 43.}
- 44.<div class="clear">
- 45.</div>
- 46.
- 47.
- 48.<script type="text/javascript" language="javascript">
- 49. var currentPageNumber = 1;
- 50. var numPerPage =5;
- 51. var totalItems=@Model.TotalItems;
- 52. var totalPageNumber = Math.ceil(totalItems / numPerPage);
- 53. var url="@Url.Action("PageSelected","Demo")";
- 54.var PageClick = function (pageclicknumber) {
- 55. currentPageNumber=pageclicknumber;
- 56. $.ajax({
- 57. async: false,
- 58.
- 59. type: "Post",
- 60.
- 61. url:url,
- 62.
- 63. data: ({ cuurentPageIndex: currentPageNumber }),//will be more parameters when you needed.
- 64.
- 65. dataType: "html",
- 66. success: function (responseData) {
- 67. $("#sourcelist").html(responseData); //render table
- 68. totalitems=@Model.TotalItems;
- 69. totalPageNumber = Math.ceil(totalItems / numPerPage);
- 70. $(".itemspager").pager({ pagenumber:pageclicknumber, pagecount:totalPageNumber, buttonClickCallback: PageClick });
- 71. }
- 72. });
- 73.};
- 74.
- 75.
- 76.</script>
- @using com.fh.Models
- @model DemoList
- <table>
- <thead>
- <tr>
- <td>
- ID
- </td>
- <td>
- Name
- </td>
- </tr>
- </thead>
- <tbody>
- @foreach (var item in Model.DataSource)
- {
- <tr>
- <td>@item.ID
- </td>
- <td>@item.Name
- </td>
- </tr>
- }
- </tbody>
- </table>
- <div class="clear">
- </div>
- @if (Model.TotalItems > 0)
- {
- if (Model.TotalItems <= 5)
- {
- <div class="pagination">
- <div class="results">
- Showing 1 to @Model.TotalItems of @Model.TotalItems (1 Pages)</div>
- </div>
- }
- else
- {
- <div class="itemspager pagination">
- </div>
- }
- }
- <div class="clear">
- </div>
- <script type="text/javascript" language="javascript">
- var currentPageNumber = 1;
- var numPerPage =5;
- var totalItems=@Model.TotalItems;
- var totalPageNumber = Math.ceil(totalItems / numPerPage);
- var url="@Url.Action("PageSelected","Demo")";
- var PageClick = function (pageclicknumber) {
- currentPageNumber=pageclicknumber;
- $.ajax({
- async: false,
- type: "Post",
- url:url,
- data: ({ cuurentPageIndex: currentPageNumber }),//will be more parameters when you needed.
- dataType: "html",
- success: function (responseData) {
- $("#sourcelist").html(responseData); //render table
- totalitems=@Model.TotalItems;
- totalPageNumber = Math.ceil(totalItems / numPerPage);
- $(".itemspager").pager({ pagenumber:pageclicknumber, pagecount:totalPageNumber, buttonClickCallback: PageClick });
- }
- });
- };
复制代码 </script>
ViewModel
C#代码- 1.using System;
- 2.using System.Collections.Generic;
- 3.using System.Linq;
- 4.using System.Web;
- 5.
- 6.namespace com.fh.Models
- 7.{
- 8. public class DemoList
- 9. {
- 10. public DemoList()
- 11. {
- 12. DataSource = new List<Demo>();
- 13. }
- 14. public List<Demo> DataSource { get; set; }
- 15. public int TotalItems { get; set; }
- 16. public int CurrentPageIndex { get; set; }
- 17. }
- 18. public class Demo
- 19. {
- 20. public int ID { get; set; }
- 21. public string Name { get; set; }
- 22. }
- 23.}
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- namespace com.fh.Models
- {
- public class DemoList
- {
- public DemoList()
- {
- DataSource = new List<Demo>();
- }
- public List<Demo> DataSource { get; set; }
- public int TotalItems { get; set; }
- public int CurrentPageIndex { get; set; }
- }
- public class Demo
- {
- public int ID { get; set; }
- public string Name { get; set; }
- }
- } control
复制代码 C#代码- 1.using System;
- 2.using System.Collections.Generic;
- 3.using System.Linq;
- 4.using System.Web;
- 5.using System.Web.Mvc;
- 6.using com.fh.Models;
- 7.
- 8.namespace com.fh.Controllers
- 9.{
- 10. public class DemoController : _Base
- 11. {
- 12. public readonly int numberPerPage = 5;
- 13. public ActionResult Index()
- 14. {
- 15. DemoList m = new DemoList();
- 16. //m.DataSource = CreatePageListTestDate();
- 17. //return View(m);
- 18. return View(m);
- 19. }
- 20. public ActionResult PageSelected(int cuurentPageIndex)
- 21. {
- 22. DemoList m = new DemoList();
- 23. m.CurrentPageIndex = cuurentPageIndex;
- 24. m.DataSource = CreatePageListTestDate().Skip((cuurentPageIndex-1) * numberPerPage).Take(numberPerPage).ToList();
- 25. m.TotalItems = CreatePageListTestDate().Count;
- 26. return PartialView("_TableList", m);
- 27. }
- 28. public List<Demo> CreatePageListTestDate()
- 29. {
- 30. List<Demo> r = new List<Demo>();
- 31. for (int i = 1; i < 100; i++)
- 32. {
- 33. r.Add(new Demo
- 34. {
- 35. ID = i,
- 36. Name = "test name " + i,
- 37. });
- 38. }
- 39. return r;
- 40. }
- 41. }
- 42.}
复制代码 |
|