代码改变世界

Asp.net MVC使用MvcPager进行分页

  夜雨瞳  阅读(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]

二、数据库数据

三、建立Linq

四、在Model创建ClassInformation

五、在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:

Edit:

七、运行效果

八、总结

MvcPager功能挺强大的,资料也相当地丰富。

MvcPager下载网址:http://mvcpager.codeplex.com/releases/view/47201

Demo的示例网址:http://en.webdiyer.com/

九、下载相关

MvcPager.dll下载:https://files.cnblogs.com/yongfeng/MvcPager.rar

源代码下载:https://files.cnblogs.com/yongfeng/20110223mvc.rar

努力加载评论中...
点击右上角即可分享
微信分享提示