架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

搜索
查看: 18824|回复: 0

[ASP.NET] mvc用Html.RenderPartial来做分页

[复制链接]
发表于 2016-7-29 11:54:02 | 显示全部楼层 |阅读模式
QQ截图20160729114552.jpg QQ截图20160729114602.jpg

数据库脚本:

  1. USE [SBDB]
  2. GO
  3. /****** Object:  Table [dbo].[Test]    scrip{过滤}t Date: 07/29/2016 11:48:16 ******/
  4. SET ANSI_NULLS ON
  5. GO
  6. SET QUOTED_IDENTIFIER ON
  7. GO
  8. CREATE TABLE [dbo].[Test](
  9.         [ID] [int] IDENTITY(1,1) NOT NULL,
  10.         [Name] [nvarchar](50) NOT NULL,
  11.         [Age] [int] NOT NULL,
  12.         [Sex] [nvarchar](50) NOT NULL,
  13.         [Hobby] [nvarchar](50) NOT NULL,
  14.         [Status] [tinyint] NOT NULL
  15. ) ON [PRIMARY]
  16. GO
  17. SET IDENTITY_INSERT [dbo].[Test] ON
  18. INSERT [dbo].[Test] ([ID], [Name], [Age], [Sex], [Hobby], [Status]) VALUES (1, N'张山', 18, N'男', N'打球', 1)
  19. INSERT [dbo].[Test] ([ID], [Name], [Age], [Sex], [Hobby], [Status]) VALUES (2, N'李四', 52, N'男', N'英雄联盟', 2)
  20. INSERT [dbo].[Test] ([ID], [Name], [Age], [Sex], [Hobby], [Status]) VALUES (4, N'王五', 22, N'男', N'游泳', 1)
  21. INSERT [dbo].[Test] ([ID], [Name], [Age], [Sex], [Hobby], [Status]) VALUES (5, N'小红', 25, N'女', N'听歌', 1)
  22. INSERT [dbo].[Test] ([ID], [Name], [Age], [Sex], [Hobby], [Status]) VALUES (7, N'实打实', 55, N'解决', N'都市风水师', 1)
  23. INSERT [dbo].[Test] ([ID], [Name], [Age], [Sex], [Hobby], [Status]) VALUES (8, N'阿斯顿撒', 88, N'戴菲菲', N'151', 1)
  24. INSERT [dbo].[Test] ([ID], [Name], [Age], [Sex], [Hobby], [Status]) VALUES (9, N'实打实的', 10, N'啥都', N'14144', 1)
  25. INSERT [dbo].[Test] ([ID], [Name], [Age], [Sex], [Hobby], [Status]) VALUES (10, N'是多少啊', 55, N'到底', N'幅度高达', 1)
  26. INSERT [dbo].[Test] ([ID], [Name], [Age], [Sex], [Hobby], [Status]) VALUES (11, N'吊死扶伤', 11, N'1155', N'144', 0)
  27. INSERT [dbo].[Test] ([ID], [Name], [Age], [Sex], [Hobby], [Status]) VALUES (12, N'十大', 22, N'撒旦', N'的发热', 0)
  28. INSERT [dbo].[Test] ([ID], [Name], [Age], [Sex], [Hobby], [Status]) VALUES (13, N'阿三倒萨', 88, N'1111', N'222', 1)
  29. INSERT [dbo].[Test] ([ID], [Name], [Age], [Sex], [Hobby], [Status]) VALUES (14, N'那你', 20, N'1541', N'152', 1)
  30. SET IDENTITY_INSERT [dbo].[Test] OFF
复制代码


控制器:

  1. public ActionResult Test(int? id)
  2.         {
  3.             int size = 10;
  4.             int _page= id ?? 1;
  5.             SB.CMS.Model.SB_DBDataContext db = new Model.SB_DBDataContext();
  6.             int count = db.Test.Count();
  7.             int page = count % size == 0 ? count / size : (count / size) + 1;   //总页数
  8.             dynamic obj = new System.Dynamic.ExpandoObject();
  9.             obj.Count = page;
  10.             obj.Page = _page;
  11.             ViewBag.Page = obj;
  12.             ViewBag.Data = db.Test.Skip((_page - 1) * size).Take(page != _page ? size : (count % size == 0 ? size : count % size)).ToList();
  13.             return View();
  14.         }
复制代码


前台试图页面:

  1. @{
  2.     Layout = null;
  3.     List<SB.CMS.Model.Test> _list = ViewBag.Data as List<SB.CMS.Model.Test>;
  4. }

  5. <!DOCTYPE html>

  6. <html>
  7. <head>
  8.     <meta name="viewport" content="width=device-width" />
  9.     <title>Test</title>
  10.     <!-- 新 Bootstrap 核心 CSS 文件 -->
  11.     <link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap.min.css">

  12.     <!-- 可选的Bootstrap主题文件(一般不用引入) -->
  13.     <link rel="stylesheet" href="//cdn.bootcss.com/bootstrap/3.3.5/css/bootstrap-theme.min.css">

  14.     <!-- jQuery文件。务必在bootstrap.min.js 之前引入 -->
  15.     <scrip{过滤}t src="//cdn.bootcss.com/jquery/1.11.3/jquery.min.js"></scrip{过滤}t>

  16.     <!-- 最新的 Bootstrap 核心 Javascrip{过滤}t 文件 -->
  17.     <scrip{过滤}t src="//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js"></scrip{过滤}t>

  18.     <!-- 分页 -->
  19.     <scrip{过滤}t src="~/scrip{过滤}ts/bootstrap-paginator.js"></scrip{过滤}t>

  20. </head>
  21. <body>
  22.         <div class="container">
  23.             <div class="row">
  24.                 @{
  25.                     var data = new ViewDataDictionary();
  26.                     data.Add("page", ViewBag.Page);
  27.                     Html.RenderPartial("/Views/Templet/_Page.cshtml", _list, data);
  28.                 }
  29.             </div>
  30.         </div>
  31. </body>
  32. </html>
复制代码


分页视图:

  1. @model List<SB.CMS.Model.Test>
  2. @{
  3.     dynamic page = (dynamic)Html.ViewData["page"];
  4. }
  5. <table class="table">
  6.     <thead>
  7.         <tr>
  8.             <th>编号</th>
  9.             <th>姓名</th>
  10.             <th>年龄</th>
  11.             <th>性别</th>
  12.             <th>爱好</th>
  13.             <th>状态</th>
  14.         </tr>
  15.     </thead>
  16.     <tbody>
  17.         @{
  18.             foreach (var item in Model)
  19.             {
  20.                 <tr>
  21.                     <th>@item.ID</th>
  22.                     <td>@item.Name</td>
  23.                     <td>@item.Age</td>
  24.                     <td>@item.Sex</td>
  25.                     <td>@item.Hobby</td>
  26.                     <td>@item.Status</td>
  27.                 </tr>
  28.             }
  29.         }
  30.     </tbody>
  31. </table>
  32. <ul class="pagination" id="pageUl"></ul>
  33. <scrip{过滤}t>
  34.     $(function () {
  35.         var element = $('#pageUl');//对应下面ul的ID  
  36.         var count=@page.Count;
  37.         var page=@page.Page;
  38.         var options = {
  39.             itemTexts: function (type, page, current) {
  40.                 switch (type) {
  41.                     case "first":
  42.                         return "首页";
  43.                     case "prev":
  44.                         return "上一页";
  45.                     case "next":
  46.                         return "下一页";
  47.                     case "last":
  48.                         return "末页";
  49.                     case "page":
  50.                         return page;
  51.                 }
  52.             },
  53.             //点击事件
  54.             onPageClicked: function (event, originalEvent, type, page) {
  55.                 //alert(page);
  56.                 document.locatio{过滤}n.href="/Home/Test/"+page;
  57.             },
  58.             currentPage: @page.Page,//当前页面  
  59.             numberOfPages: 5,//一页显示几个按钮(在ul里面生成5个li)  
  60.             totalPages: @page.Count, //总页数  
  61.             bootstrapMajorVersion: 3
  62.         };
  63.         element.bootstrapPaginator(options);
  64.     });
  65. </scrip{过滤}t>
复制代码






上一篇:asp.net 在Orchard中使用样式及脚本
下一篇:c#判断程序是否是以管理员身份运行
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2026-9-1 21:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表