记录一次分页的简单封装

common.Pager = function () {
		this.loadList = function () {
			alert("改方法还没有初始化");
		};

		this.search = function (searchParam) {
			alert("搜索方法还没有初始化");
		};


		this.init = function (data) {
		


			data = data || {};
			if (data.loadList) {
				this.loadList = data.loadList;
			}
			var pageParam = common.getPageParam();
			var currentPage = data.page || 1;
			data.totalPage = data.totalPage || $("#totalPage").text() || 1;
			$("#currentPage").text(currentPage);
			$("#totalPage").text(data.totalPage);
			this.search = function (searchParam) {
				var pageParam = common.getPageParam();
				//覆盖或者添加相关参数
				for (var key in searchParam) {
					pageParam[key] = searchParam[key];
				}
				common.setPageParam(pageParam);
				initTable();
				// 修改并记录下当前的所有分页参数
				this.loadList(pageParam);
			};

			if (common.getAttr("page-event-bind")) {
				common.info("分页点击事件已经初始化过了");
			} else {
				$("#prev").bind("click", {
					"pager": this
				}, this.doPrev);
				$("#next").bind("click", {
					"pager": this
				}, this.doNext);
				$("#jump").bind("change", function () {
					var jumPage = parseInt($("#jump").val(), 10);
					var queryParam = common.getUrlQueryParams();
					var totalPage = parseInt($("#totalPage").text(), 10);
					var currentPage = queryParam.page || 1;

					if (isNaN(jumPage) || jumPage <= 0 || jumPage > totalPage) {
						$("#jump").val("");
					}
				});

				$("#go").bind("click", {
					"pager": this
				}, this.doGo);
				common.setAttr("page-event-bind", "yes");
			}

		};


		
		this.doNext = function (params) {
			var pager = params.data.pager;
			var pageParam = common.getPageParam();
			var currentPage = parseInt(pageParam.page || 1, 10);
			var totalPage = parseInt($("#totalPage").text(), 10);

			if (currentPage <= totalPage) {
				pageParam.page = currentPage + 1;
				initTable();
				common.setPageParam(pageParam);
				$("#currentPage").text(pageParam.page);
				// 修改并记录下当前的所有分页参数
				pager.loadList(pageParam);

			}
			return false;
		};
		this.doPrev = function (params) {
			var pager = params.data.pager;
			var pageParam = common.getPageParam();
			var currentPage = parseInt(pageParam.page || 1, 10);

			if (currentPage > 1) {
				pageParam.page = currentPage - 1;
				$("#currentPage").text(pageParam.page);
				initTable();
				common.setPageParam(pageParam);
				// 修改并记录下当前的所有分页参数
				pager.loadList(pageParam);
			}
		};
		this.doGo = function (params) {
			var jumPage = parseInt($("#jump").val(), 10);
			var pager = params.data.pager;
			var pageParam = common.getPageParam();
			var currentPage = parseInt(pageParam.page || 1, 10);
			var totalPage = parseInt($("#totalPage").text(), 10);
			if (isNaN(jumPage) || jumPage <= 0  || jumPage > totalPage) {
				$("#jump").val("");
			} else {
				pageParam.page = jumPage;
				common.setPageParam(pageParam);
				initTable();
				common.setPageParam(pageParam);
				// 修改并记录下当前的所有分页参数
				pager.loadList(pageParam);
			}
		};

		function initTable() {
			var trHtml = $(".table-tr").first().prop("outerHTML");
			$(".tr-content").html(trHtml);
		}

	};



	common.setPageParam = function (pageParam) {
		pageParam = pageParam || {};
		$("#current-page").attr("pageParam", common.stringify(pageParam));
	};

	common.getPageParam = function () {
		var pageParamStr = $("#current-page").attr("pageParam") || "{}";
		return common.parse(pageParamStr);
	};



你可能感兴趣的:(记录一次分页的简单封装)