首页 >web前端 >js教程 > 正文

MVC+jQuery.Ajax异步实现增删改查和分页_jquery

原创2016-05-16 09:00:2501537
本文实例为大家分享了MVC+jQuery.Ajax异步实现增删改查和分页的具体代码,供大家参考,具体内容如下

1、Model层代码

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
using MvcExamples;
using System.Web.Mvc;

namespace MvcExamples.Web.Models
{
 public class StudentModels
 {
  /// 
  /// 获取学生信息列表
  /// 
  public List StudentList { get; set; }
  /// 
  /// 获取教工信息列表
  /// 
  public List TeacherList { get; set; }
  /// 
  /// 获取学生信息列表(分页)
  /// 
  public PagedList GetStudentList { get; set; }
 }
}

2、View层代码

<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage" %>


 Index



 
 
 
 
 



 

MVC 演示

<%foreach (MvcExamples.Model.Student student in Model.GetStudentList) {%> <% } %>
学生表
学号 姓名 性别 生日 班级 操作
<%=student.sno %> <%=student.sname %> <%=student.ssex %> <%=student.sbirthday %> <%=student.sclass %> 修改   删除
全选 添加
<%=Html.MikePager(Model.GetStudentList)%>
<%foreach (MvcExamples.Model.Student student in Model.StudentList) {%> <% } %>
学生表
学号 姓名 性别 生日 班级
<%=student.sno %> <%=student.sname %> <%=student.ssex %> <%=student.sbirthday %> <%=student.sclass %>

<%foreach (MvcExamples.Model.Teacher teacher in Model.TeacherList) {%> <% } %>
老师表
编号 姓名 性别 生日 职称 所在部门
<%=teacher.tno%> <%=teacher.tname%> <%=teacher.tsex%> <%=teacher.tbirthday%> <%=teacher.prof%> <%=teacher.depart%>

3、Controller层代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Mvc.Ajax;

namespace MvcExamples.Web.Controllers
{
 public class StudentController : Controller
 {
  //
  // GET: /Student/

  MvcExamples.BLL.Student _Student = new MvcExamples.BLL.Student();
  MvcExamples.BLL.Teacher _Teacher = new MvcExamples.BLL.Teacher();
  /// 
  /// 演示
  /// 
  /// 
  /// 
  /// 
  public ActionResult Index(int? pi, string sclass)
  {
   int PageIndex = pi ?? 1;
   int PageSize = 5;
   string sClass = sclass == null ? "95031" : sclass;
   MvcExamples.Web.Models.StudentModels _StudentModels = new MvcExamples.Web.Models.StudentModels();
   _StudentModels.StudentList = _Student.GetModelList("sclass=" + sClass);
   _StudentModels.TeacherList = _Teacher.GetModelList("tsex='男'");
   _StudentModels.GetStudentList = new PagedList(_Student.GetModelList("sclass=" + sClass).AsQueryable(), PageIndex, PageSize);
   return View(_StudentModels);//返回一个Model
  }
  /// 
  /// 修改学生信息
  /// 
  /// 
  /// 
  /// 
  /// 
  /// 
  /// 
  public ActionResult UpdateStudent(string no, string name, string sex, string birsthday, string sclass)
  {
   MvcExamples.Model.Student _student = new MvcExamples.Model.Student();
   _student.sno = no;
   _student.sname = name;
   _student.ssex = sex;
   _student.sbirthday = Convert.ToDateTime(birsthday);
   _student.sclass = sclass;

   _Student.Update(_student);   

   JsonResult json = new JsonResult();
   json.Data = new
   {
    result = "true"
   };
   return json;
  }
  /// 
  /// 删除学生信息
  /// 
  /// 
  /// 
  public ActionResult DeleteStudent(string no)
  {
   bool IsDelete= _Student.Delete(no);
   JsonResult json = new JsonResult();
   return json;
   if (IsDelete)
   {
    json.Data = new
    {
     result = "true"
    };
   }
   else
   {
    json.Data = new
    {
     result ="false"
    };
   }
   return json;
  }
  /// 
  /// 添加学生信息
  /// 
  /// 
  /// 
  /// 
  /// 
  /// 
  /// 
  public ActionResult AddStudent(string no, string name, string sex, string birsthday, string sclass)
  {
   MvcExamples.Model.Student _student = new MvcExamples.Model.Student();
   _student.sno = no;
   _student.sname = name;
   _student.ssex = sex;
   _student.sbirthday = Convert.ToDateTime(birsthday);
   _student.sclass = sclass;

   _Student.Add(_student);

   JsonResult json = new JsonResult();
   json.Data = new
   {
    result = "true"
   };
   return json;
  }

  /// 
  /// 提供弹出窗口的数据
  /// 
  /// 
  /// 
  public ActionResult WindowData(int id)
  {
   JsonResult json = new JsonResult();
   //这里给json数据(这里只是演示,下面数据是模拟的)
   json.Data = new
   {
    name = "张三",
    sex = "男"
   };
   return json;
  }

 }
}

4、两个分页辅助类PagedList和MikePagerHtmlExtensions

PagedList辅助类

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;
using System.Collections.Specialized;

namespace System.Web.Mvc
{
 public interface IPagedList
 {
  int TotalPage //总页数
  {
   get;
  }

  int TotalCount
  {
   get;
   set;
  }

  int PageIndex
  {
   get;
   set;
  }

  int PageSize
  {
   get;
   set;
  }

  bool IsPreviousPage
  {
   get;
  }

  bool IsNextPage
  {
   get;
  }
 }

 public class PagedList : List, IPagedList
 {
  public PagedList(IQueryable source, int? index, int? pageSize)
  {
   if (index == null) { index = 1; }
   if (pageSize == null) { pageSize = 10; }
   this.TotalCount = source.Count();
   this.PageSize = pageSize.Value;
   this.PageIndex = index.Value;
   this.AddRange(source.Skip((index.Value - 1) * pageSize.Value).Take(pageSize.Value));
  }

  public int TotalPage
  {
   get { return (int)System.Math.Ceiling((double)TotalCount / PageSize); }
  }

  public int TotalCount
  {
   get;
   set;
  }
  /// 
/// 
/// 
  public int PageIndex
  {
   get;
   set;
  }

  public int PageSize
  {
   get;
   set;
  }

  public bool IsPreviousPage
  {
   get
   {
    return (PageIndex > 1);
   }
  }

  public bool IsNextPage
  {
   get
   {
    return ((PageIndex) * PageSize) < TotalCount;
   }
  }

 }

 public static class Pagination
 {
  public static PagedList ToPagedList(this IOrderedQueryable source, int? index, int? pageSize)
  {
   return new PagedList(source, index, pageSize);
  }

  public static PagedList ToPagedList(this IOrderedQueryable source, int? index)
  {
   return new PagedList(source, index, 10);
  }

  public static PagedList ToPagedList(this IQueryable source, int? index, int? pageSize)
  {
   return new PagedList(source, index, pageSize);
  }

  public static PagedList ToPagedList(this IQueryable source, int? index)
  {
   return new PagedList(source, index, 10);
  }
 }
}

MikePagerHtmlExtensions辅助类

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Web.Mvc;
using System.Web.Routing;
using System.Text;

namespace System.Web.Mvc
{
 public static class MikePagerHtmlExtensions
 {
  
  #region MikePager 分页控件

  public static string MikePager(this HtmlHelper html, PagedList data)
  {
   string actioinName = html.ViewContext.RouteData.GetRequiredString("action");
   return MikePager(html, data, actioinName);
  }

  public static string MikePager(this HtmlHelper html, PagedList data, object values)
  {
   string actioinName = html.ViewContext.RouteData.GetRequiredString("action");
   return MikePager(html, data, actioinName, values);
  }

  public static string MikePager(this HtmlHelper html, PagedList data, string action)
  {
   return MikePager(html, data, action, null);
  }

  public static string MikePager(this HtmlHelper html, PagedList data, string action, object values)
  {
   string controllerName = html.ViewContext.RouteData.GetRequiredString("controller");
   return MikePager(html, data, action, controllerName, values);
  }

  public static string MikePager(this HtmlHelper html, PagedList data, string action, string controller, object values)
  {
   return MikePager(html, data, action, controller, new RouteValueDictionary(values));
  }

  public static string MikePager(this HtmlHelper html, PagedList data, RouteValueDictionary values)
  {
   string actioinName = html.ViewContext.RouteData.GetRequiredString("action");
   return MikePager(html, data, actioinName, values);
  }

  public static string MikePager(this HtmlHelper html, PagedList data, string action, RouteValueDictionary values)
  {
   string controllerName = html.ViewContext.RouteData.GetRequiredString("controller");
   return MikePager(html, data, action, controllerName, values);
  }

  public static string MikePager(this HtmlHelper html, PagedList data, string action, string controller, RouteValueDictionary valuedic)
  {
   int start = (data.PageIndex - 5) >= 1 ? (data.PageIndex - 5) : 1;
   int end = (data.TotalPage - start) > 9 ? start + 9 : data.TotalPage;

   RouteValueDictionary vs = valuedic == null ? new RouteValueDictionary() : valuedic;

   var builder = new StringBuilder();
   builder.AppendFormat("
"); if (data.IsPreviousPage) { vs["pi"] = 1; builder.Append(Html.LinkExtensions.ActionLink(html, "首页", action, controller, vs, null)); builder.Append(" "); vs["pi"] = data.PageIndex - 1; builder.Append(Html.LinkExtensions.ActionLink(html, "上一页", action, controller, vs, null)); builder.Append(" "); } for (int i = start; i <= end; i++) //前后各显示5个数字页码 { vs["pi"] = i; if (i == data.PageIndex) { builder.Append("" + i.ToString() + " "); } else { builder.Append(" "); builder.Append(Html.LinkExtensions.ActionLink(html, i.ToString(), action, controller, vs, null)); } } if (data.IsNextPage) { builder.Append(" "); vs["pi"] = data.PageIndex + 1; builder.Append(Html.LinkExtensions.ActionLink(html, "下一页", action, controller, vs, null)); builder.Append(" "); vs["pi"] = data.TotalPage; builder.Append(Html.LinkExtensions.ActionLink(html, "末页", action, controller, vs, null)); } builder.Append(" 每页" + data.PageSize + "条/共" + data.TotalCount + "条 第" + data.PageIndex + "页/共" + data.TotalPage + "页
"); return builder.ToString(); } #endregion } }

效果图:

5、源码下砸:jQuery.Ajax异步实现增删改查和分页

以上就是本文的全部内容,希望对大家的学习有所帮助。

php中文网最新课程二维码

声明:本文原创发布php中文网,转载请注明出处,感谢您的尊重!如有疑问,请联系admin@php.cn处理

相关文章

相关视频


网友评论

文明上网理性发言,请遵守 新闻评论服务协议

我要评论
  • 专题推荐

    作者信息

    php中文网

    认证0级讲师

    推荐视频教程
  • javascript初级视频教程javascript初级视频教程
  • jquery 基础视频教程jquery 基础视频教程
  • 视频教程分类