一、脚本引入
<script src="~/Scripts/jquery-1.8.2.js"></script>
<script src="~/Scripts/jquery.pagination.js"></script> //插件下载地址 http://pan.baidu.com/s/1sj1BgyL
<link href="~/Content/CSS/Public/pagination.css" rel="stylesheet" />
二、前台代码
<div id="backHtml"></div>
<div id="pagination" class="pagination"></div>
三、脚本代码
<script type="text/javascript">
$(function () {
LoadDataPage();
})
function LoadDataPage() {
var url = "/Shift/GetPage";
var pageCount = 0;
var pageSize = 0;
var Page = 0;
$.ajax({
url: url, //后台处理程序
type: "post", //数据发送方式
async: false,
dataType: "html", //接受数据格式
success: function (data) {
pageCount = parseInt($(data).find("Count").text());
pageSize = parseInt($(data).find("PageSize").text());
Page = parseInt($(data).find("Page").text());
$("#pagination").pagination(pageCount, {
callback: pageselectCallback,
num_edge_entries: 1,//两侧首尾分页条目数
prev_text: "上一页",//上一页按钮里text
prev_show_always: true,//是否上一页显示按钮
next_text: "下一页",//下一页按钮里text
next_show_always: true,//是否下一页显示按钮
items_per_page: pageSize,//显示条数
current_page: Page, //当前页索引
link_to: '#',//分页链接
num_display_entries: 3//连续分页主体部分分页条目数
});
},
error: function () {
alert("服务器没有返回数据,可能服务器忙,请重试");
}
})
}
//分页回调函数
function pageselectCallback(page_id, jq) {
$.ajax({
async: false,
dataType: "xml",
type: "post",
url: "/Shift/GetIndex?page=" + (parseInt(page_id) + parseInt(1)), //请求的处理数据
//传入的参数,第一个参数就是分页的页数,第二个参数为排序的依据
//下面的操作就是成功返回数据以后,进行数据的绑定
success: function (data) {
var html = $(data).find("html").text();
$("#backHtml").html(html);
}
});
}
</script>
四、后台代码(控制器 ShiftController)
public string GetPage()
{
List<TeamManage> tms = db.TeamManage.ToList();
int page = Request.QueryString["page"].TrySetInt(1);
string xmlPageInfo = PageCreateXml(tms.Count, pageSize, page - 1);
return xmlPageInfo;
}
[HttpPost]
public string GetIndex()
{
StringBuilder equipmentTable = new StringBuilder();
//具体的页面数
int page;
int.TryParse(Request.QueryString["page"], out page);
if (page == 0)
{
page = 1;
}
int RowIndex = pageSize * (page - 1) + 1;
List<TeamManage> etmsList = db.TeamManage.OrderBy(t => t.ID).Skip((page - 1) * pageSize).Take(pageSize).ToList();
if (etmsList.Count > 0)
{
foreach (var item in etmsList)
{
equipmentTable.Append("<div>"+RowIndex+item.Name+"</div>");
RowIndex++;
}
}
else
{
equipmentTable.Append("<div>没有数据</div>");
}
return CreateXml(equipmentTable.ToString());
}
public static string PageCreateXml(int CountXml, int PageSizeXml, int PageXml)
{
XmlDocument doc = new XmlDocument();
XmlDeclaration xmldecl = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
XmlElement root = doc.CreateElement("root");
XmlNode Count = doc.CreateElement("Count");
Count.InnerText = CountXml.ToString();
root.AppendChild(Count);
XmlNode PageSize = doc.CreateElement("PageSize");
PageSize.InnerText = PageSizeXml.ToString();
root.AppendChild(PageSize);
XmlNode Page = doc.CreateElement("Page");
Page.InnerText = PageXml.ToString();
root.AppendChild(Page);
doc.AppendChild(root);
doc.InsertBefore(xmldecl, root);
return doc.InnerXml;
}
public static string CreateXml(string html)
{
XmlDocument doc = new XmlDocument();
XmlDeclaration xmldecl = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
XmlElement root = doc.CreateElement("root");
XmlNode myhtml = doc.CreateElement("html");
myhtml.InnerText = html;
root.AppendChild(myhtml);
doc.AppendChild(root);
doc.InsertBefore(xmldecl, root);
return doc.InnerXml;
}