通過ajax進行分頁查詢

html代碼

<body>
	<div id="resultDIV">
		<table class="table_list">
			<thead id="resultThead" style="width:90%;">
			</thead>
			<tbody id="resultTbody">
			</tbody>
	    </table>
	<div id="pageDiv" class="page eui-pager-custom"></div>
</div>

css代碼

.table_list{ text-align:center; background:#fff;}
.table_list th{ padding:0 10px; line-height:40px; font-weight:normal; color:#fff; background:#3fa4e4;}
.table_list td{ padding:3px 10px; border:1px solid #ccc;  word-break:break-all;}
.table_list tbody tr:hover{ background:#dbeffb;}
.table_list thead tr{ background:#BBFFBB;}

通過點擊查詢按鈕,結合ajax進行分頁檢索,數據展示到table中

//ajax發送請求
$.ajax({
	async : true,
	url : "url地址",
	type : "post",
	data : {
		"ipKeyword" : ipKeyword,
	},
	dataType : "json",
	success : function(data) {
		// 數據數量
		var resultSize = data.resultSize;
		// 當前頁
		var currentPage = data.currentPage;
		// 數據列表
		var resultData = data.dataSource;
		// 數據展示
		if (resultData != null) {
			// 添加表格數據
			addTableData(resultSize, currentPage, resultData);
			// 綁定點擊事件
			bindClick();
			$("#downloadDIV").attr("style","display:block;");
		} else {
			$("#resultDIV").attr("style","display:none;");
			$("#downloadDIV").attr("style","display:none;");
		}
	}
});

往table中添加行和數據addTableData()方法

// 設置表格的頁數顯示的條數
var pageSize = 20;
// 總頁數
var totalPage = 0;
// 當前頁
var cPage = 0;

// 添加table數據
function addTableData(resultSize, currentPage, resultData) {
	for (var i = 0; i < resultData.length; i++) {
		var rowData = resultData[i];
		var result = "";
		result += "<tr>";
		if (i == 0) {
			for (var j = 0; j < rowData.length; j++) {
				result += "<th style='padding:1px;' nowrap='nowrap' >" + rowData[j] + "</th>";
			}
			result += "</tr>";
			$("#resultThead").append(result)
		} else {
			for (var j = 0; j < rowData.length; j++) {
				if (j == 5) {
					result += "<td style='padding:1px;' nowrap='nowrap' ><a href='javascript:;' id='pluginurl"+ i +"' onclick=myDownloadExcel('" + i + "','" + rowData[j] + "');return false>" + rowData[j] + "</a></td>";
				} else {
					result += "<td style='padding:1px;' nowrap='nowrap' >" + rowData[j] + "</td>";
				}
			}
			result += "</tr>";
			$("#resultTbody").append(result)
		}
	}

	if (resultSize/pageSize > parseInt(resultSize/pageSize)){
		totalPage = parseInt(resultSize/pageSize)+1;
	}else{
		totalPage = parseInt(resultSize/pageSize);
	}
	cPage = currentPage;
	// 位置2 生成當前的點擊按鈕
	createBtns(resultSize, totalPage , currentPage);
}

添加分頁按鈕

/**
 * [createBtns 生成點擊按鈕]
 * @param  {[NUMBER]} resultSize [數據總數]
 * @param  {[NUMBER]} totalPage [分頁的總頁數]
 * @param  {[NUMBER]} current   [當前頁]
 */
function createBtns(resultSize, totalPage , current){
	var tempStr = "";
	tempStr += "<a title='首頁' class='page_first' data-role='first' data-page = '1'></a>";
	if (current > 1) {
		tempStr += "<a title='上一頁' class='page_prev' data-role='prev' data-page = "+(current-1)+"></a>";
	} else {
		tempStr += "<a title='上一頁' class='page_prev' data-role='prev' data-page = "+current+"></a>";
	}
	// 總頁數 > 5
	if (totalPage > 5) {
		if (current > 3 && current <= (totalPage-3)) {
			var sub2 = Number(current) - Number(2);
			var sub1 = Number(current) - Number(1);
			var add2 = Number(current) + Number(2);
			var add1 = Number(current) + Number(1);
			tempStr += "<a  class='btn page"+sub2 + "' data-page = "+sub2+"><span>"+ sub2 +"</span></a>";
			tempStr += "<a  class='btn page"+sub1 + "' data-page = "+sub1+"><span>"+ sub1 +"</span></a>";
			tempStr += "<a  class='btn page"+current + " currentpage" + "' data-page = "+current+"><span>"+ current +"</span></a>";
			tempStr += "<a  class='btn page"+add1 + "' data-page = "+add1+"><span>"+ add1 +"</span></a>";
			tempStr += "<a  class='btn page"+add2 + "' data-page = "+add2+"><span>"+ add2 +"</span></a>";
		} else if (current <= 3) {
			for (var pageIndex= 1 ; pageIndex <= 5; pageIndex++) {
				tempStr += "<a  class='btn page"+ pageIndex +(current==pageIndex? " currentpage" : "") +  "' data-page = "+pageIndex+"><span>"+ pageIndex +"</span></a>";
			}
		} else if (current > (totalPage-3)) {
			for (var pageIndex= 4 ; pageIndex >= 0; pageIndex--) {
				tempStr += "<a  class='btn page"+(totalPage - pageIndex) +(current==((totalPage - pageIndex))? " currentpage" : "") + "' data-page = "+(totalPage - pageIndex)+"><span>"+ (totalPage - pageIndex) +"</span></a>";
			}
		}
	// 總頁數 <= 5
	} else {
		for(var pageIndex= 1 ; pageIndex < totalPage+1; pageIndex++){
			tempStr += "<a  class='btn page"+pageIndex+(current==pageIndex? " currentpage" : "")+ "' data-page = "+( pageIndex )+"><span>"+ pageIndex +"</span></a>";
		}
	}

	if (current < totalPage) {
		tempStr += "<a title='下一頁' class='page_next' data-role='next' data-page = "+(current+1)+"></a>";
	} else {
		tempStr += "<a title='下一頁' class='page_next' data-role='next' data-page = "+current+"></a>";
	}
	tempStr += "<a title='尾頁' class='page_last' data-role='last' data-page = " + totalPage + "></a>";
	tempStr += "共<span data-target='rowCount'>" + resultSize + "</span>條 ";
	tempStr += "跳轉到 <input type='text' data-target='input' class='page_input' value='"+ current +"'/><a data-role='go' class='go'>GO</a>";
	document.getElementById("pageDiv").innerHTML = tempStr;
}

添加按鈕的點擊事件

function bindClick(){
	// 設置首頁、末頁、上一頁、下一頁的點擊事件
	var buttonArr = ['.page_first','.page_prev','.page_next','.page_last','.go'];
	for(var k = 0; k < buttonArr.length; k++){
		var $dom = buttonArr[k];
		if (k == 4) {
			$('body').undelegate($dom , 'click').delegate( $dom , 'click' , function () {
				var data = $(".page_input").val();//獲取當前按鈕跳轉的頁數
				if (inputIntegerCheck(data, totalPage)) {
					ajaxSearchData(data);
				}
			})
		} else {
			$('body').undelegate($dom , 'click').delegate( $dom , 'click' , function () {
				var data = $(this).data('page');//獲取當前按鈕跳轉的頁數
				if (data != cPage) {
					ajaxSearchData(data);
				}
			})
		}
	}

	// 設置數碼的點擊事件
	for (var k  = 1 ;k <= totalPage ; k++){
		var $singleDom  = '.page'+k;
		$('body').undelegate($singleDom , 'click').delegate( $singleDom , 'click' , function () {
			var data = $(this).data('page');
			if (data != cPage) {
				ajaxSearchData(data);
			}
		})
	 }
}

添加分頁按鈕點擊後觸發的ajax分頁方法

// ajax分頁查詢
function ajaxSearchData(intValue) {
	$("#resultThead").empty();
	$("#resultTbody").empty();
	$("#pageDiv").empty();
	//ajax發送請求
	$.ajax({
		async : true,
		url : "url地址",
		type : "post",
		data : {
			"ipKeyword" : ipKeyword,
			"page" : intValue,
		},
		dataType : "json",
		success : function(data) {
			$("#resultDIV").attr("style","display:block;");
			//獲得返回的值
			// 數據數量
			var resultSize = data.resultSize;
			// 當前頁
			var currentPage = data.currentPage;
			// 數據列表
			var resultData = data.dataSource;
			// 數據展示
			if (resultData != null) {
				// 添加表格數據
				addTableData(resultSize, currentPage, resultData);
				$("#downloadDIV").attr("style","display:block;");
			} else {
				$("#resultDIV").attr("style","display:none;");
				$("#downloadDIV").attr("style","display:none;");
			}
		}
	});
}

實現效果圖

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章