¡¡¡¡Ð§¹û£º
¡¡¡¡js£º
¡¡¡¡
¡¡¡¡$.fn.extend({ JPager: function (cfg, pageIndex, pageSize) {
¡¡¡¡if (cfg && pageIndex > 0 && pageSize>0) {
¡¡¡¡var token = "#" + this.attr("id");
¡¡¡¡this.empty();
¡¡¡¡var pageFirst = function () {
¡¡¡¡$(token).JPager(cfg, 1, pageSize);
¡¡¡¡};
¡¡¡¡var pagePre = function () {
¡¡¡¡$(token).JPager(cfg, pageIndex - 1, pageSize);
¡¡¡¡};
¡¡¡¡var pageLast = function () {
¡¡¡¡$(token).JPager(cfg, parseInt($("#_tot").val()), pageSize);
¡¡¡¡};
¡¡¡¡var pageNext = function () {
¡¡¡¡$(token).JPager(cfg, pageIndex + 1, pageSize);
¡¡¡¡};
¡¡¡¡var pageNumber = function () {
¡¡¡¡$(token).JPager(cfg, parseInt($(this).text()), pageSize);
¡¡¡¡};
¡¡¡¡var pageGo = function () {
¡¡¡¡var index = parseInt($("#_pos").val());
¡¡¡¡var total = parseInt($("#_tot").val());
¡¡¡¡if (index) {
¡¡¡¡if (index > total) {
¡¡¡¡$(token).JPager(cfg, total, pageSize);
¡¡¡¡}
¡¡¡¡else if (index < 1) {
¡¡¡¡$(token).JPager(cfg, 1, pageSize);
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡$(token).JPager(cfg, index, pageSize);
¡¡¡¡}
¡¡¡¡}
¡¡¡¡};
¡¡¡¡var checkGoNumber = function () {
¡¡¡¡if (!Number(this.value)) {
¡¡¡¡this.value = "";
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡this.value = Number(this.value);
¡¡¡¡}
¡¡¡¡};
¡¡¡¡var initCustomer = function (recordCount) {
¡¡¡¡if (cfg.customer) {
¡¡¡¡if (cfg.customer.template) {
¡¡¡¡var t = cfg.customer.template;
¡¡¡¡t = t.replace(/\%total\%/gi, Math.ceil(recordCount / pageSize)).replace(/\%current\%/gi, pageIndex).replace(/\%recordCount\%/gi, recordCount).replace(/\%pageSize\%/gi, pageSize);
¡¡¡¡if (cfg.customer.position == "right") {
¡¡¡¡$("#_right").after(t);
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡$("#_left").before(t);
¡¡¡¡}
¡¡¡¡}
¡¡¡¡}
¡¡¡¡};
¡¡¡¡var changeState = function (total) {
¡¡¡¡if (pageIndex == 1) {
¡¡¡¡$("#_first").attr("class", "unable");
¡¡¡¡$("#_pre").attr("class", "unable");
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡$("#_first").bind("click", pageFirst).attr("class", "number");
¡¡¡¡$("#_pre").bind("click", pagePre).attr("class", "number");
¡¡¡¡}
¡¡¡¡if (pageIndex == total) {
¡¡¡¡$("#_last").attr("class", "unable");
¡¡¡¡$("#_next").attr("class", "unable");
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡$("#_last").bind("click", pageLast).attr("class", "number");
¡¡¡¡$("#_next").bind("click", pageNext).attr("class", "number");
¡¡¡¡}
¡¡¡¡};
¡¡¡¡var initNumber = function (total, count, current) {
¡¡¡¡if (total > 0 && count > 0) {
¡¡¡¡if (current < 1) {
¡¡¡¡current = 1;
¡¡¡¡}
¡¡¡¡if (current > total) {
¡¡¡¡current = total;
¡¡¡¡}
¡¡¡¡var endIndex = total;
¡¡¡¡var startIndex = 1;
¡¡¡¡var temp = current + Math.floor(count / 2);
¡¡¡¡if (temp < total) {
¡¡¡¡if (temp < count) {
¡¡¡¡endIndex = count;
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡startIndex = temp - count + 1;
¡¡¡¡endIndex = temp;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡if (total > count) {
¡¡¡¡startIndex = total - count + 1;
¡¡¡¡}
¡¡¡¡}
¡¡¡¡$("#_number").empty();
¡¡¡¡for (var i = startIndex; i <= endIndex; i++) {
¡¡¡¡var html = $("<span></span>").text(i).bind("click", pageNumber);
¡¡¡¡if (i == current) {
¡¡¡¡$("#_number").append(html.attr("class", "selected"));
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡$("#_number").append(html.attr("class", "number"));
¡¡¡¡}
¡¡¡¡}
¡¡¡¡}
¡¡¡¡};
¡¡¡¡var initPager = function (data) {
¡¡¡¡if ($.isArray(data.SearchResult) && data.RecordCount > 0) {
¡¡¡¡$(token).append("<span id='_left'><span id='_first' class='spcial'>Ê×Ò³</span> <span id='_pre' class='spcial'>ÉÏÒ»Ò³</span></span> <span id='_number'></span><span id='_go'><input id='_pos' type='text'/><input id='_to' type='button' value='GO'/></span> <span id='_right'><span id='_next' class='spcial'>ÏÂÒ»Ò³</span> <span id='_last' class='spcial'>ĩҳ</span></span><input id='_tot' type='hidden'/>");
¡¡¡¡var total = Math.ceil(data.RecordCount / pageSize);
¡¡¡¡$("#_tot").val(total);
¡¡¡¡$("#_pos").bind("blur", checkGoNumber);
¡¡¡¡$("#_to").bind("click", pageGo);
¡¡¡¡changeState(total);
¡¡¡¡if (cfg.showNumber && cfg.count > 0) {
¡¡¡¡initNumber(total, cfg.count, pageIndex);
¡¡¡¡}
¡¡¡¡initCustomer(data.RecordCount);
¡¡¡¡}
¡¡¡¡};
¡¡¡¡if (cfg.action) {
¡¡¡¡if (cfg.action.url && cfg.action.data) {
¡¡¡¡var d = cfg.action.data.substr(0, cfg.action.data.lastIndexOf("}")) + ',"pageIndex":' + pageIndex + ',"pageSize":' + pageSize + "}";
¡¡¡¡if (cfg.action.callback && $.isFunction(cfg.action.callback)) {
¡¡¡¡$.ajax({
¡¡¡¡type: "post",
¡¡¡¡url: cfg.action.url,
¡¡¡¡dataType: "json",
¡¡¡¡contentType: "text/json",
¡¡¡¡data: d,
¡¡¡¡success: function (data) {
¡¡¡¡initPager(data.d);
¡¡¡¡cfg.action.callback(data.d);
¡¡¡¡}
¡¡¡¡});
¡¡¡¡}
¡¡¡¡else {
¡¡¡¡$.ajax({
¡¡¡¡type: "post",
¡¡¡¡url: cfg.action.url,
¡¡¡¡dataType: "json",
¡¡¡¡contentType: "text/json",
¡¡¡¡data: d,
¡¡¡¡success: function (data) {
¡¡¡¡initPager(data.d);
¡¡¡¡}
¡¡¡¡});
¡¡¡¡}
¡¡¡¡}
¡¡¡¡}
¡¡¡¡}
¡¡¡¡}
¡¡¡¡});
¡¡¡¡css£º
¡¡¡¡
¡¡¡¡#_pos {
¡¡¡¡width: 40px;
¡¡¡¡}
¡¡¡¡.unable
¡¡¡¡{
¡¡¡¡color: #BCC0BB;
¡¡¡¡}
¡¡¡¡.number
¡¡¡¡{
¡¡¡¡margin: 2px;
¡¡¡¡color:#0000FF;
¡¡¡¡text-decoration:underline;
¡¡¡¡}
¡¡¡¡.selected
¡¡¡¡{
¡¡¡¡margin: 2px;
¡¡¡¡color: #FF0000;
¡¡¡¡font-weight: bold;
¡¡¡¡}
¡¡¡¡html£º
¡¡¡¡
¡¡¡¡<!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>
¡¡¡¡<title>·ÖÒ³¿Ø¼þʾÀý</title>
¡¡¡¡<link href="CSS/JPager.css" rel="stylesheet" type="text/css" />
¡¡¡¡<script src="JS/jquery.min.js" type="text/javascript"></script>
¡¡¡¡<script src="JExtension/JPager.js" type="text/javascript"></script>
¡¡¡¡<script type="text/javascript">
¡¡¡¡$(function () {
¡¡¡¡$("#pager").JPager({ customer:{template:"%cuRRent%"},count: 10, action: { url: "Service/JService.svc/GetPersons", data: '{"name":"zhoulq"}'}, showNumber: true },1,5);
¡¡¡¡});
¡¡¡¡</script>
¡¡¡¡</head>
¡¡¡¡<body>
¡¡¡¡<table>
¡¡¡¡</table>
¡¡¡¡<div id="pager"></div>
¡¡¡¡</body>
¡¡¡¡</html>
¡¡¡¡wcf£º
¡¡¡¡
¡¡¡¡using System;
¡¡¡¡using System.Collections.Generic;
¡¡¡¡using System.Linq;
¡¡¡¡using System.Runtime.Serialization;
¡¡¡¡using System.ServiceModel;
¡¡¡¡using System.ServiceModel.Activation;
¡¡¡¡using System.ServiceModel.Web;
¡¡¡¡namespace JPlugin
¡¡¡¡{
¡¡¡¡[ServiceContract]
¡¡¡¡[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
¡¡¡¡public class JService
¡¡¡¡{
¡¡¡¡[OperationContract]
¡¡¡¡[WebInvoke]
¡¡¡¡public PageObject<Person> GetPersons(string name,int pageIndex,int paseSize)
¡¡¡¡{
¡¡¡¡return new PageObject<Person>(){RecordCount = 23,SearchResult = new List<Person>(){new Person(){Name="zhpulq",Age = 28},new Person(){Name = "zhouxy",Age = 24}}};
¡¡¡¡}
¡¡¡¡}
¡¡¡¡public class PageObject<T>
¡¡¡¡{
¡¡¡¡public int RecordCount { get; set; }
¡¡¡¡public List<T> SearchResult { get; set; }
¡¡¡¡}
¡¡¡¡}