//说明:jquery异步加载列表数据,包括分页
//jsp端调用用法:
//<script type="text/javascript">
// var ctx = "${ctx}";
// $(document).ready(function(){
// initTable();
// });
//
// function initTable(searchData){
// var properties = {
// divId:'tableContent',
// pager:'tablePager',
// pageSize:15,
// url:ctx + "/system/searchSystemLogList.action",
// data:searchData,
// colNames:["登录名","类型","IP地址","日志描述","时间"],
// colModel:[
// {name:'username',width:90,align: 'center'},
// {name:'title',width:120,align: 'center'},
// {name: 'ip', width: 120, align: 'center'},
// {name: 'description',width:200, align: 'left'},
// {name: 'date', width:150,align: 'center'}
// ]
// };
//
// jqTable(properties);
// }
//</script>
// <div id="tableContent"></div>
//<div id="tablePager"></div>
var properties;
var totalPages;
var currentPage;
function jqTable(opts){
properties = opts;
var pageSize = opts.pageSize;//每页显示数量
var pageNo = opts.pageNo;//当前页码
var tableId = opts.divId;//table表格div ID
var pager = opts.pager;//tabel 分页div ID
var url = opts.url; //url
var data = opts.data;//数据搜索
var divWidth = opts.width;//表格可视区域宽度
var divHeight = opts.width;//表格可视区域高度
var tableColModel = opts.colModel;
var tableColNames = opts.colNames;//定义表头
var displayAll = opts.tdDisplayAll;//单元格是否信息是否展示完全
var tableClass = opts.tabelClass;//table表格样式默认值为jqtable
var trEvenRowColor = opts.evenRowColor;//table偶数行样式,默认值:evenRowColor
var trOddRowColor = opts.oddRowColor;//table奇数行样式,默认值:oddRowColor
var trMouseOverColor = opts.mouseOverColor;//table行划过样式,默认值:mouseOverColor
var trMouseClickColor = opts.mouseClickColor;//table选中行样式,默认值:mouseClickColor
if(isBlank(pageSize)){pageSize = 10;}
if(isBlank(displayAll)){displayAll = false;}
if(isBlank(pageNo)){pageNo = 1;}
//表格行样式调整
if(isBlank(tableClass)){tableClass = "jqtable";}
if(isBlank(trEvenRowColor)){trEvenRowColor = "evenRowColor";}
if(isBlank(trOddRowColor)){trOddRowColor = "oddRowColor";}
if(isBlank(trMouseOverColor)){trMouseOverColor = "mouseOverColor";}
if(isBlank(trMouseClickColor)){trMouseClickColor = "mouseClickColor";}
url += "?pagination.pageSize=" + pageSize + "&pagination.pageNo=" + pageNo;
if(!isBlank(data)){url += "&" + data;}
var $table = $("#" + tableId);
$($table).css("overflow","auto");
if(!isBlank(divWidth)){$($table).css("width",divWidth);}
if(!isBlank(divHeight)){$($table).css("height",divHeight);}
$.getJSON( //使用getJSON方法取得JSON数据
url,
function(data){//处理数据 data指向的是返回来的JSON数据
var tableHtml=""; //表单内容
if(data.title != null && data.title != ""){
tableHtml += "<p class='title'>"+data.title+"</p>";
}
tableHtml += "<table width='100%' class='"+tableClass+"' cellpadding='0' cellspacing='0'><thead><tr>";
var theadTd = "";
for(var i=0;i<tableColNames.length;i++){
theadTd += "<th width="+tableColModel[i].width+">"+tableColNames[i]+"</th>";
}
tableHtml += theadTd + "</tr></thead><tbody>";
var tableBody="";//定义表单内容
if(data == null || data == "" || data.totalRecords == 0){
var tip = "没有查询到数据!";
tableBody = "<tr><td colspan='"+tableColNames.length +"'><font color='red'>"+tip+"</font></td></tr>";
}else{
//alert("totalRecords:" + data.totalRecords + " curPage:" + data.curPage + " totalPages:" + data.totalPages);
$(data.dataRows).each(function(i,tableData){ //遍历JSON数据得到所需形式
var trClass = tableData.trColor;//定制每一行显示的显色
if(typeof(trClass) != "undefined"){
tableBody += "<tr class='"+trClass+"'>";
}else{
tableBody += "<tr>";
}
for(var j=0;j<tableColModel.length;j++){
var tdContent = tableData[tableColModel[j].name];
if(tdContent == null || tdContent == "null"){
tdContent = " ";
}
if(typeof(tableColModel[j].align) == "undefined"){
tableBody += "<td>"+tdContent+"</td>";
}else{
var newTdContent = tdContent;
if(!displayAll){
newTdContent = tdContent.length > 45?tdContent.substring(0,45)+"...":tdContent;
}
tableBody += "<td style='word-break:break-all; word-wrap:break-word;text-align:"+tableColModel[j].align+"' title="+tdContent+">"+newTdContent+"</td>";
}
}
tableBody += "</tr>";
});
}
tableHtml += tableBody + "</tbody></table>";
$table.empty();
$table.html(tableHtml);
currentPage = data.curPage;
totalPages = data.totalPages;
var totalCounts = data.totalRecords;
//改变表格背景颜色
if(totalPages >= 1){
changeTableBackground(tableClass,trEvenRowColor,trOddRowColor,trMouseOverColor,trMouseClickColor);
}
//-----------------------------------------------如果不需要分页效果,可以省略此过程---------------------------------------------------
if(typeof(pager) == "undefined"){
return false;
}
//构造分页代码
var $pager = $("#"+pager);
$($pager).css("overflow","auto");
$($pager).css("text-align","center");
if(!isBlank(divWidth)){
$($pager).css("width",divWidth);
}
var pagerHtml = "<table cellpadding='0' cellspacing='0' style='margin:auto'><tr><td>";
if(currentPage == 1 || totalCounts <= 0){
pagerHtml += "首页 上一页 ";
}else{
pagerHtml += "<a href='###' onclick='firstPage();'>首页</a> <a href='###' onclick='prePage();'>上一页</a> ";
}
if(currentPage == totalPages || totalCounts <= 0){
pagerHtml += "下一页 尾页 ";
}else{
pagerHtml += "<a href='###' onclick='nextPage();'>下一页</a> <a href='###' onclick='lastPage();'>尾页</a> ";
}
var inputIsDisable = "";
var countFrom = "";
if(totalCounts <= 0){
inputIsDisable = "disabled = 'disabled'";
}else{
var dataCounts = (currentPage-1)*pageSize + pageSize;
countFrom = " 第" + ((currentPage-1)*pageSize + 1) + " - " + ( dataCounts >= totalCounts?totalCounts:dataCounts) + "条 "
}
pagerHtml += "当前第<input style='text-align:center' id='searchPageInput' "+ inputIsDisable +" onkeypress='searchPage(event);' type='text' value='"+currentPage+"'/> 页 总"+totalPages+"页 "+countFrom+"共 " + totalCounts + "条数据";
pagerHtml +="</td></tr></table>";
$pager.empty();
$pager.html(pagerHtml);
//-----------------------------------------------------------------分页代码结束-----------------------------------------------------------
});
}
//背景色换色
function changeTableBackground(tableClass,trEvenRowColor,trOddRowColor,trMouseOverColor,trMouseClickColor){
$("." + tableClass).each(function(){
$(this).find("tr:even").addClass(trEvenRowColor);
$(this).find("tr:odd").addClass(trOddRowColor);
$(this).find("tbody > tr").bind("mouseout",function(){
$(this).removeClass(trMouseOverColor);
});
$(this).find("tbody > tr").bind("mouseover",function(){
$(this).addClass(trMouseOverColor);
});
var tmp;
$(this).find("tbody > tr").click(function(){
if(tmp != null){tmp.removeClass(trMouseClickColor);}
$(this).addClass(trMouseClickColor);
tmp = $(this);
});
});
}
//首页
function firstPage(){
properties.pageNo = 1;
jqTable(properties);
}
//上一页
function prePage(){
if(currentPage > 1){
properties.pageNo = currentPage - 1;
jqTable(properties);
}
}
//下一页
function nextPage(){
if(currentPage < totalPages){
properties.pageNo = currentPage + 1;
jqTable(properties);
}
}
//尾页
function lastPage(){
properties.pageNo = totalPages;
jqTable(properties);
}
//按给定页码展示数据
function searchPage(event){
if(event.keyCode==13 || window.event.keyCode == 13)
{
var pager = $("#searchPageInput").val();
if(pager == ""){
alert("请填写页码");
return false;
}
var reg = /^[1-9]*[1-9][0-9]*$/;
if(!reg.test(pager)){
alert("页码位数字,请正确填写页码");
return false;
};
if(pager < 1 || pager > totalPages){
alert("页码范围不正确,请正确填写页码");
return false;
}
properties.pageNo = pager;
jqTable(properties);
}
}
//判断字符是否为空
function isBlank(stringVar){
if(typeof(stringVar) == "undefined"|| stringVar == null || stringVar == "" || stringVar == "null"){
return true;
};
}
效果图如下:

- 大小: 11 KB
分享到:
相关推荐
在这个“jquery表格插件带分页动态数据表格代码”项目中,我们重点探讨的是如何利用jQuery实现一个功能丰富的表格,包括数据分页和动态加载。 一、jQuery表格插件 表格插件通常是基于jQuery构建的,用于增强HTML...
### jQuery Pagination 插件实现异步分页 在Web开发中,为了提高用户体验并减轻服务器负担,异步分页技术被广泛应用。jQuery作为一个流行的JavaScript库,提供了强大的DOM操作能力,结合Ajax可以轻松实现异步加载...
通过上述知识点的学习,我们可以了解到如何使用JQuery结合Ajax技术实现Table数据的动态绑定及分页功能。这种方式不仅能够提升用户体验,还能有效减轻服务器压力,是现代Web开发中常用的技术手段之一。在实际项目开发...
通过以上步骤,我们可以创建一个功能完善的jQuery带分页动态数据表格插件。在实际项目中,可能还需要考虑错误处理、数据排序、搜索过滤等功能,以满足更多需求。记住,良好的代码组织和注释也是提高代码可读性和维护...
1. **自定义样式**:分页插件通常允许自定义样式,你可以根据项目需求定制分页的外观。 2. **缓存与懒加载**:对于大数据量的场景,可以考虑使用前端缓存或懒加载技术,只加载可视区域内的数据,提高页面性能。 3....
总的来说,使用AJAX和`jquery.pagination.js`可以构建出高效且用户友好的表格数据展示和分页系统。这种技术在处理大量数据时特别有用,因为它避免了全页面刷新,提高了加载速度,同时也提升了用户体验。在实际开发中...
本资源“jQuery不刷新分页动态数据表格代码”是针对网页开发中的一个常见需求——实现数据表格的分页功能,且无需页面整体刷新。这种功能对于提高用户体验至关重要,特别是在处理大量数据时。 首先,我们要理解...
在这个"jQuery表格数据分页插件代码"中,我们可以看到一个完整的实现,它允许用户按需加载和浏览数据,优化了用户体验。 1. **jQuery基础**:jQuery是一个广泛使用的JavaScript库,简化了HTML文档遍历、事件处理、...
jQuery Table分页插件为开发者提供了便捷的解决方案,它允许用户轻松地在表格中实现动态加载和分页功能。本文将深入探讨jQuery Table分页插件的核心原理、使用方法以及常见应用场景。 ### 一、jQuery Table分页插件...
jQuery插件PagedTable是一种广泛使用的前端解决方案,用于在网页上展示大量数据时实现表格的分页功能。这种插件可以极大地提升用户体验,因为它避免了一次性加载所有数据导致页面加载速度变慢的问题。下面我们将深入...
动态加载树(Tree)和动态加载表格(Table)是两种常见的数据展示方式,它们在网页应用中广泛使用,特别是在需要显示层级结构数据(如组织结构、文件系统)和大量表格数据(如报表、用户列表)的情况下。 **动态...
在本项目中,"jquery动态表格自定义分页.zip"是一个包含使用jQuery和CSS实现动态表格分页功能的示例。下面将详细讲解这个项目的关键知识点: 1. jQuery:jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历...
在本篇文章中,我们将深入探讨如何使用 jQuery 实现功能丰富的表格,包括数据加载、排序、过滤和分页等。 首先,创建一个基本的 HTML 表格结构是至关重要的。HTML `<table>` 元素提供了构建表格的基础框架,包括 `...
在"LoadTable.js"这个文件中,很可能包含了使用jQuery进行数据加载和分页的相关功能。 Ajax(Asynchronous JavaScript and XML)是异步的JavaScript和XML技术,它允许网页在不刷新整个页面的情况下与服务器进行通信...
`Table.aspx` 文件可能是用于展示表格数据的页面,可能包含 HTML、CSS 和 JavaScript 代码,用于生成和操作数据。由于我们没有具体的 `Table.aspx` 内容,这里只能假设它是一个用于展示数据的页面,比如使用了 ...
在网页开发中,jQuery是一...在实际项目中,还可以结合Ajax异步加载数据,进一步提升性能和用户体验。在提供的`test.html`和`js`文件中,你可以找到具体的实现代码,通过学习和理解,可以加深对这些功能的理解和应用。
在Web开发中,表格是展示数据的常见方式,jQuery UI Table通过提供可定制的样式和交互功能,使得网页表格更加美观且用户友好。本篇文章将深入探讨jQuery UI Table的核心特性、使用方法以及实际应用中的技巧。 首先...
这包括`<table>`标签,`<thead>`用于定义表头,`<tbody>`用于放置表格内容。表格的每一行数据应表示为`<tr>`,每个单元格(cell)则是`<td>`或`<th>`。 2. **JavaScript库**:Bootstrap本身并不直接支持动态加载...
jQuery作为一款广泛使用的JavaScript库,提供了丰富的功能,包括处理DOM操作、事件处理、动画效果等,同时也适用于客户端表格分页显示,极大地提高了用户体验,避免了频繁的服务器请求,实现了无刷新分页。...
Bootstrap框架因其简洁、易用的样式设计而被广泛应用,它提供了丰富的UI组件,包括表格和分页。在这个项目中,我们看到的是一个利用JavaScript实现的、具有Bootstrap风格的分页表格,它允许后台直接传递数据列表,...