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

本文实例为大家分享了MVC+jQuery.Ajax异步实现增删改查和分页的具体代码,供大家参考,具体内容如下

1、Model层代码

rush:csharp;"> 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<MvcExamples.Model.Student> StudentList { get; set; }
///
/// 获取教工信息列表
///

public List<MvcExamples.Model.Teacher> TeacherList { get; set; }
///
/// 获取学生信息列表(分页)
///

public PagedList<MvcExamples.Model.Student> GetStudentList { get; set; }
}
}

2、View层代码

<div class="jb51code">
<pre class="brush:xhtml;">
<%@ Page Title="" Language="C#" MasterPageFile="~/Views/Shared/Site.Master" Inherits="System.Web.Mvc.ViewPage<MvcExamples.Web.Models.StudentModels>" %>

<asp:Content ID="Content1" ContentPlaceHolderID="TitleContent" runat="server">
Index

<script src="http://www.cnblogs.com/Scripts/jquery-1.4.2.min.js" type="text/javascript">
<script src="http://www.cnblogs.com/Scripts/My97DatePicker/WdatePicker.js" type="text/javascript">
<script src="http://www.cnblogs.com/Scripts/windwUi/jquery-ui-1.8.1.min.js" type="text/javascript">

MVC 演示 <%foreach (MvcExamples.Model.Student student in Model.GetStudentList) {%>  
<%foreach (MvcExamples.Model.Student student in Model.StudentList) {%> <%foreach (MvcExamples.Model.Teacher teacher in Model.TeacherList) {%> <div id="window" style="display:none;">

姓名:
性别:
生日:
班级:

3、Controller层代码

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();
///


/// 演示
///

/// <param name="pi">
/// <param name="sclass">
///
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<MvcExamples.Model.Student>(_Student.GetModelList("sclass=" + sClass).AsQueryable(),PageIndex,PageSize);
return View(_StudentModels);//返回一个Model
}
///
/// 修改学生信息
///

/// <param name="no">
/// <param name="name">
/// <param name="sex">
/// <param name="birsthday">
/// <param name="sclass">
///
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;
}
///


/// 删除学生信息
///

/// <param name="no">
///
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;
}
///
/// 添加学生信息
///

/// <param name="no">
/// <param name="name">
/// <param name="sex">
/// <param name="birsthday">
/// <param name="sclass">
///
public ActionResult AddStudent(string no,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;
}

///


/// 提供弹出窗口的数据
///

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

}
}

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

PagedList辅助类

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? pageSize)
{
return new PagedList(source,index,pageSize);
}

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

public static PagedList ToPagedList(this IQueryable source,pageSize);
}

public static PagedList ToPagedList(this IQueryable source,10);
}
}
}

MikePagerHtmlExtensions辅助类

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,actioinName,values);
}

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

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

public static string MikePager(this HtmlHelper html,RouteValueDictionary values)
{
string actioinName = html.ViewContext.RouteData.GetRequiredString("action");
return MikePager(html,RouteValueDictionary values)
{
string controllerName = html.ViewContext.RouteData.GetRequiredString("controller");
return MikePager(html,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("<div class=\"mike_mvc_pager\">");

if (data.IsPreviousPage)
{
vs["pi"] = 1;
builder.Append(Html.LinkExtensions.ActionLink(html,"首页",vs,null));
builder.Append("");
vs["pi"] = data.PageIndex - 1;
builder.Append(Html.LinkExtensions.ActionLink(html,"上一页",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(),null));
}

}

if (data.IsNextPage)
{
builder.Append("");

vs["pi"] = data.PageIndex + 1;
builder.Append(Html.LinkExtensions.ActionLink(html,"下一页",null));
builder.Append("");


vs["pi"] = data.TotalPage;
builder.Append(Html.LinkExtensions.ActionLink(html,"末页",null));

}
builder.Append("每页" + data.PageSize + "条/共" + data.TotalCount + "条 第" + data.PageIndex + "页/共" + data.TotalPage + "页

");
return builder.ToString();
}

endregion

}
}

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

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

相关文章

IE6是一个非常老旧的网页浏览器,虽然现在很少人再使用它,但...
PHP中的count()函数是用来计算数组或容器中元素的个数。这个...
使用 AJAX(Asynchronous JavaScript and XML)技术可以在不...
Ajax(Asynchronous JavaScript and XML)是一种用于改进网页...
本文将介绍如何通过AJAX下载Excel文件流。通过AJAX,我们可以...
Ajax是一种用于客户端和服务器之间的异步通信技术。通过Ajax...