Asp.net MVC使用MvcPager进行分页
2011-02-27 19:33 夜雨瞳 阅读(3195) 评论(0) 编辑 收藏 举报一、数据库表
CREATE TABLE [dbo].[T_Class]( [ID] [ int ] NOT NULL , [ Name ] [nvarchar]( max ) COLLATE Chinese_PRC_CI_AS NOT NULL , CONSTRAINT [PK_T_Class] PRIMARY KEY CLUSTERED ( [ID] ASC ) WITH (PAD_INDEX = OFF , IGNORE_DUP_KEY = OFF ) ON [ PRIMARY ] ) ON [ PRIMARY ] CREATE TABLE [dbo].[T_Teacher]( [ID] [ int ] NOT NULL , [ Name ] [nvarchar]( max ) COLLATE Chinese_PRC_CI_AS NOT NULL , [Address] [nvarchar]( max ) COLLATE Chinese_PRC_CI_AS NOT NULL , [Phone] [nvarchar]( max ) COLLATE Chinese_PRC_CI_AS NOT NULL , [Email] [nvarchar]( max ) COLLATE Chinese_PRC_CI_AS NOT NULL , [ClassID] [ int ] NOT NULL , CONSTRAINT [PK_T_Teacher] PRIMARY KEY CLUSTERED ( [ID] ASC ) WITH (PAD_INDEX = OFF , IGNORE_DUP_KEY = OFF ) ON [ PRIMARY ] ) ON [ PRIMARY ] GO ALTER TABLE [dbo].[T_Teacher] WITH CHECK ADD CONSTRAINT [FK_ClassTeacher] FOREIGN KEY ([ClassID]) REFERENCES [dbo].[T_Class] ([ID]) GO ALTER TABLE [dbo].[T_Teacher] CHECK CONSTRAINT [FK_ClassTeacher] |
二、数据库数据
insert into T_Class(ID, Name ) values (1, '化学1班' ); insert into T_Class(ID, Name ) values (2, '化学2班' ); insert into T_Class(ID, Name ) values (3, '计算机1班' ); insert into T_Class(ID, Name ) values (4, '计算机2班' ); insert into T_Class(ID, Name ) values (5, '机械自动化1班' ); insert into T_Class(ID, Name ) values (6, '机械自动化2班' ); insert into T_Class(ID, Name ) values (7, '生物1班' ); insert into T_Class(ID, Name ) values (8, '生物2班' ); insert into T_Class(ID, Name ) values (9, '金融1班' ); insert into T_Class(ID, Name ) values (10, '金融2班' ); insert into T_Class(ID, Name ) values (11, '美术1班' ); insert into T_Class(ID, Name ) values (12, '美术2班' ); insert into T_Teacher(ID, Name ,Address,Phone,Email,ClassID) values (1, '陈春' , '江苏省' , '15820713331' , 'cc@qq.com' ,1); insert into T_Teacher(ID, Name ,Address,Phone,Email,ClassID) values (2, '刘华' , '河南省' , '15820713332' , 'lh@qq.com' ,2); insert into T_Teacher(ID, Name ,Address,Phone,Email,ClassID) values (3, '李江东' , '黑龙江' , '15820713333' , 'ljd@qq.com' ,3); insert into T_Teacher(ID, Name ,Address,Phone,Email,ClassID) values (4, '叶天问' , '山东省' , '15820713334' , 'ytw@qq.com' ,4); insert into T_Teacher(ID, Name ,Address,Phone,Email,ClassID) values (5, '杨海天' , '河北省' , '15820713335' , 'sht@qq.com' ,5); insert into T_Teacher(ID, Name ,Address,Phone,Email,ClassID) values (6, '朱晓红' , '宁夏' , '15820713336' , 'zxh@qq.com' ,6); insert into T_Teacher(ID, Name ,Address,Phone,Email,ClassID) values (7, '张天' , '新疆' , '15820713337' , 'zt@qq.com' ,7); insert into T_Teacher(ID, Name ,Address,Phone,Email,ClassID) values (8, '郭静' , '广西省' , '15820713338' , 'gj@qq.com' ,8); insert into T_Teacher(ID, Name ,Address,Phone,Email,ClassID) values (9, '周星星' , '广东省' , '15820713339' , 'zxx@qq.com' ,9); insert into T_Teacher(ID, Name ,Address,Phone,Email,ClassID) values (10, '黄工' , '安徽省' , '15820713310' , 'hg@qq.com' ,10); insert into T_Teacher(ID, Name ,Address,Phone,Email,ClassID) values (11, '胡友意' , '福建省' , '15820713311' , 'hyy@qq.com' ,11); insert into T_Teacher(ID, Name ,Address,Phone,Email,ClassID) values (12, '萧景' , '西藏' , '15820713312' , 'xj@qq.com' ,12); |
三、建立Linq
四、在Model创建ClassInformation
using System; using System.Collections.Generic; using System.Linq; using System.Web; namespace _20110223mvc.Models { public class ClassInformation { public int ID { get ; set ; } public int ClassID { get ; set ; } public string Name { get ; set ; } public string TeacherName { get ; set ; } public string Address { get ; set ; } public string Phone { get ; set ; } public string Email { get ; set ; } } } |
五、在Controllers创建Page控制器
添加MvcPager.dll,并引用MvcPager的命名空间Webdiyer.WebControls.Mvc。
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using _20110223mvc.Models; //linq实体命名空间 using _20110223mvc.Models.LinqEntities; //MvcPager.dll分页命名空间 using Webdiyer.WebControls.Mvc; namespace _20110223mvc.Controllers { public class PageController : Controller { // // GET: /Page/ //默认分页 private const int defaultPageSize = 5; // public ActionResult Index( int ? id) { using (DBDataContext db = new DBDataContext()) { IQueryable<ClassInformation> p = from c in db.T_Class from d in db.T_Teacher where c.ID == d.ClassID select new ClassInformation { ID = c.ID, ClassID = d.ClassID, Name = c.Name, TeacherName = d.Name, Address = d.Address, Phone = d.Phone, Email = d.Email }; PagedList<ClassInformation> m = p.ToPagedList(id ?? 1, defaultPageSize); return View(m); } } public ActionResult Edit( int id) { using (DBDataContext db = new DBDataContext()) { IQueryable<ClassInformation> p = from c in db.T_Class from d in db.T_Teacher where c.ID == d.ClassID && c.ID==id select new ClassInformation { ID = c.ID, ClassID = d.ClassID, Name = c.Name, TeacherName = d.Name, Address = d.Address, Phone = d.Phone, Email = d.Email }; ClassInformation k = p.Single(); ViewData[ "k" ] = k; return View(); } } [AcceptVerbs(HttpVerbs.Post)] public ActionResult Edit() { using (DBDataContext db = new DBDataContext()) { T_Class q = db.T_Class.Where(o => o.ID == int .Parse(Request.Form[ "ID" ])).Single(); q.Name = Request.Form[ "Name" ]; T_Teacher p = db.T_Teacher.Where(o => o.ClassID == int .Parse(Request.Form[ "ID" ])).Single(); p.Name = Request.Form[ "TeacherName" ]; p.Phone = Request.Form[ "Phone" ]; p.Address = Request.Form[ "Address" ]; p.Email = Request.Form[ "Email" ]; db.SubmitChanges(); return RedirectToAction( "Index" ); } } public ActionResult Delete( int id) { using (DBDataContext db = new DBDataContext()) { T_Class p = db.T_Class.Single(q => q.ID == id); T_Teacher teacher = db.T_Teacher.Single(q => q.ClassID == id); db.T_Class.DeleteOnSubmit(p); db.T_Teacher.DeleteOnSubmit(teacher); db.SubmitChanges(); } return RedirectToAction( "Index" ); } } } |
六、添加视图Index和Edit.
Index:
<%@ Page Language= "C#" Inherits= "System.Web.Mvc.ViewPage<PagedList<ClassInformation>>" %> <%@ Import Namespace= "_20110223mvc" %> <%@ Import Namespace= "_20110223mvc.Models" %> <%@ Import Namespace= "Webdiyer.WebControls.Mvc" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > <html xmlns= "http://www.w3.org/1999/xhtml" > <head runat= "server" > <title>asp.net MVC分页</title> <%--样式表--%> <link href= "http://www.cnblogs.com/Content/Site.css" rel= "stylesheet" type= "text/css" /> <%--JQuery和Ajax--%> <%--<script src= "http://www.cnblogs.com/Scripts/MicrosoftAjax.js" type= "text/javascript" ></script>--%> <script src= "http://www.cnblogs.com/Scripts/jquery-1.4.1.min.js" type= "text/javascript" ></script> <%--<script src= "http://www.cnblogs.com/Scripts/MicrosoftMvcAjax.js" type= "text/javascript" ></script>--%> </head> <body> <div class = "divfloat" > <div id= "divpages" > <table> <tr> <th> 班级 </th> <th> 老师 </th> <th> 地址 </th> <th> 电话号码 </th> <th> 邮箱 </th> <th> 操作 </th> </tr> <% foreach (ClassInformation od in Model) { %> <tr> <td> <%=od.Name.ToString() %> </td> <td> <%=od.TeacherName.ToString() %> </td> <td> <%=od.Address.ToString() %> </td> <td> <%=od.Phone.ToString() %> </td> <td> <%=od.Email.ToString() %> </td> <td> <%= Html.ActionLink( "编辑" , "Edit" , new { id=od.ID })%> <%= Html.ActionLink( "删除" , "Delete" , new { id = od.ID })%> </td> </tr> <% } %> </table> <%-- <%=Html.AjaxPager(Model, new PagerOptions() { CssClass = "pages" , PageIndexParameterName = "id" , ShowMorePagerItems = false , FirstPageText = "首页" , LastPageText = "末页" , PrevPageText = "上一页" , NextPageText = "下一页" , CurrentPagerItemWrapperFormatString = "<span class=\"cpb\">{0}</span>" , ShowPageIndexBox = true , NumericPagerItemWrapperFormatString = "<span class=\"item\">{0}</span>" }, new AjaxOptions() { UpdateTargetId = "divpages" })%>--%> <%=Html.Pager(Model, new PagerOptions { PageIndexParameterName = "id" , CssClass = "pages" , FirstPageText = "首页" , LastPageText = "末页" , PrevPageText = "上一页" , NextPageText = "下一页" , CurrentPagerItemWrapperFormatString = "<span class=\"cpb\">{0}</span>" , ShowPageIndexBox = true , NumericPagerItemWrapperFormatString = "<span class=\"item\">{0}</span>" , PageIndexBoxType = PageIndexBoxType.DropDownList, ShowGoButton = false ,PageIndexBoxWrapperFormatString= " 转到{0}" ,SeparatorHtml = "" })%> </div> </div> </body> </html> |
Edit:
<%@ Page Language= "C#" Inherits= "System.Web.Mvc.ViewPage" %> <%@ Import Namespace= "_20110223mvc.Models" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > <html xmlns= "http://www.w3.org/1999/xhtml" > <head runat= "server" > <title>修改个人信息</title> <style type= "text/css" > dt { float :left; } dd { margin:15px 0px 15px 100px; } </style> </head> <body> <div> <% ClassInformation k = ViewData[ "k" ] as ClassInformation; %> <% Html.BeginForm( "Edit" , "Page" , FormMethod.Post); %> <%=Html.Hidden( "ID" ,k.ID ) %> <dl> <dt> <label> 班级</label></dt> <dd> <%=Html.TextBox( "Name" ,k.Name) %></dd> <dt> <label> 老师</label></dt> <dd> <%=Html.TextBox( "TeacherName" ,k.TeacherName) %></dd> <dt> <label> 地址</label></dt> <dd> <%=Html.TextBox( "Address" ,k.Address) %></dd> <dt>电话号码</dt> <dd> <%=Html.TextBox( "Phone" ,k.Phone) %></dd> <dt>邮箱</dt> <dd> <%=Html.TextBox( "Email" ,k.Email) %></dd> </dl> <input type= "submit" value= "保存" /> <input type = "button" " value=" 返回 " onclick=" document.location.href= 'http://www.cnblogs.com/Page/Index' " /> </div> </body> </html> |
七、运行效果
八、总结
MvcPager功能挺强大的,资料也相当地丰富。
MvcPager下载网址:http://mvcpager.codeplex.com/releases/view/47201
Demo的示例网址:http://en.webdiyer.com/
九、下载相关
MvcPager.dll下载:https://files.cnblogs.com/yongfeng/MvcPager.rar
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步