(3) 表格分页
一次性将成千上万条数据显示在Grid里,然后拖动滚动条查看数据,显然不是什么好主意,在效率上也是不允许的。实际上,Grid控件对性能的要求较高。如果在一个页面上放3个Grid,就可以感觉到响应变慢。如果在每个Grid里显示上千条数据,效率就可想而知了。所以说分页是必不可少的,而EXT提供了方便的集成分页工具条的方式。
下面看一个完整的分页示例:
首先完成一些后台的准备工作,包括数据库表,DAO等。
Student表结构如下:
CREATE TABLE `student` (
`id` int(11) NOT NULL auto_increment,
`name` varchar(50) NOT NULL,
`age` int(2) NOT NULL,
`gender` char(1) NOT NULL,
`email` varchar(50) default NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `name_index` (`name`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk;
其它类略
page.html
<html>
<head>
<title>page.html</title>
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="this is my page">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<link rel="stylesheet" type="text/css" href="ext2/resources/css/ext-all.css" />
<script type="text/javascript" src="ext2/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext2/ext-all.js"></script>
<script type="text/javascript" src="ext2/build/locale/ext-lang-zh_CN.js"></script>
<script type="text/javascript" src="page.js" charset="gbk"></script>
</head>
<body>
<div id="grid"></div>
</body>
</html>
page.js
Ext.onReady(function(){
var cm = new Ext.grid.ColumnModel([
{header:'编号',dataIndex:'id',sortable:true},
{header:'名称',dataIndex:'name',sortable:true},
{header:'年龄',dataIndex:'age',sortable:true},
{header:'性别',dataIndex:'gender',sortable:true},
{header:'邮箱',dataIndex:'email',sortable:true}
]);
var store = new Ext.data.Store({
proxy:new Ext.data.HttpProxy({url:'servlet/StudentServlet'}),
reader: new Ext.data.JsonReader({
totalProperty:'totalProperty',
root:'root'
}, [
{name: 'id'},
{name: 'name'},
{name: 'age'},
{name: 'gender'},
{name: 'email'}
])
});
var grid = new Ext.grid.GridPanel({
renderTo: 'grid',
autoHeight: true,
width:500,
store: store,
cm: cm,
bbar: new Ext.PagingToolbar({
pageSize: 5,
store: store,
displayInfo: true,
displayMsg: '显示第 {0} 条到 {1} 条记录,共 {2} 条',
emptyMsg: "没有记录"
}),
tbar: new Ext.PagingToolbar({
pageSize: 5,
store: store,
displayInfo: true,
displayMsg: '显示第 {0} 条到 {1} 条记录,共 {2} 条',
emptyMsg: "没有记录"
})
});
store.load({params:{start:0,limit:5}});
});
(4) 与服务器交互
在实际的应用中,表格中的数据一般都是直接存放在数据库表或服务器的文件中。因此,在使用表格控件的时候经常需要与服务器进行交互。ExtJS 使用Ajax 方式提供了一套与服务器交互的机制,也就是可以不用刷新页面,就可以访问服务器的程序进行数据读取或数据保存等操作。比如前面在表格中显示xml 文档中数据的例子中,就是一个非常简单的从服务器端读取数据的例子,再回顾一下代码:
var store=new Ext.data.Store({
url: 'test.xml',
reader:new Ext.data.XmlReader(
{record:"row"},
["id","name","organization","homepage"]
)
});
因为Sote 组件接受一个参数url,如果设置url,则ExtJS 会创建一个与服务器交互的Ext.data.HttpProxy 对象,该对象通过指定的Connection 或Ext.Ajax.request 来向服务端发送请求,从而可以读取到服务器端的数据。经验表明,服务器端产生JSon 数据是一种非常不错的选择,也就是说假如服务器的url“student.jsp?cmd=list”产生下面的JSON 数据输出:
{results:[
{id:1,name:'小王',email:'xiaowang@yahoo.com',sex:'男',bornDate:'1991-4-4'},
{id:1,name:'小李',email:'xiaoli@yahoo.com',sex:'男',bornDate:'1992-5-6'},
{id:1,name:'小兰',email:'xiaoxiao@yahoo.com',sex:'女',bornDate:'1993-3-7'}
] }
则前面显示学习信息编辑表格的store 可以创建成下面的形式:
var store=new Ext.data.Store({
url:"student.jsp?cmd=list",
reader:new Ext.data.JsonReader({
root:"result"},
["id","name","organization","homepage"])
});
或者:
var store=new Ext.data.JsonStore({
url:"student.jsp?cmd=list",
root:"result",
fields:["id","name","organization","homepage"]
});
其中root 表示包含记录集数据的属性。
如果在运行程序中需要给服务器端发送数据的时候,此时可以直接使用ExtJS 中提供的Ext.Ajax 对象的request 方法。
比如下面的代码实现放服务器的student.jsp?cmd=save 这个url发起一个请求,并在params 中指定发送的Student 对象:
index.jsp
Ext.onReady(function(){
Ext.get("btn").on("click",function(){
Ext.Ajax.request({
url:'student.jsp?cmd=save',
method:"post",
success:sFn,
failure:fFn,
params:{name:'小李',email:'xiaoli@163.com',bornDate:'1992-5-6',sex:'男'}
});
});
});
function sFn(){
alert("保存成功");
}
function fFn(){
alert("保存失败");
}
<input type="button" id="btn" value="ext ajax"/>
student.jsp
<%
request.setCharacterEncoding("UTF-8");
String name = request.getParameter("name");
String sex = request.getParameter("sex");
String bornDate = request.getParameter("bornDate");
String email = request.getParameter("email");
System.out.println("name:"+name);
System.out.println("sex:"+ sex);
System.out.println("bornDate:"+bornDate);
System.out.println("email:"+email);
%>
分享到:
相关推荐
jQuery作为一个广泛使用的JavaScript库,提供了丰富的插件来帮助开发者实现各种功能,包括表格分页。本篇文章将深入探讨jQuery插件在实现表格分页中的应用及其相关知识点。 一、jQuery和表格分页基础 1. jQuery...
JavaScript是一种客户端脚本语言,它可以在用户的浏览器上运行,无需服务器交互。在这个类中,JavaScript负责处理表格数据的分页逻辑,包括显示和隐藏特定页码的数据,以及处理用户的查询请求。这样,即使没有服务器...
本教程将详细讲解如何使用jQuery库来实现表格的动态分页,同时结合Java后端进行数据的动态查询和分页处理。 首先,让我们了解动态分页的基本原理。动态分页是指在用户滚动或点击分页按钮时,仅加载当前显示的数据,...
了解以上知识点后,你可以构建一个高效、响应式的动态数据表格分页系统。通过jQuery与PHP、AJAX的配合,实现数据的动态加载,既保证了用户体验,又优化了服务器性能。在实际应用中,还需要考虑错误处理、安全性以及...
"分页插件,表格分页一体"这个标题所指的是一个专为表格设计的分页解决方案,它将分页功能与表格紧密结合,提供了一种高效、便捷的方式来管理大量数据的显示。 首先,我们要理解什么是分页。在Web应用中,分页是...
这个项目“jQuery动态表格数据分页检索排序代码”提供了一个纯前端实现的解决方案,无需服务器端的支持,使得用户可以更加便捷地浏览和管理大量数据。 jQuery是一个流行的JavaScript库,它简化了DOM操作、事件处理...
表格分页的基本思想是将大量数据分成多个部分,每次只加载一部分(即一页)到页面上,用户可以通过翻页操作查看其他部分。这既减少了内存占用,又提高了页面响应速度。 2. **JavaScript基础** JavaScript是实现...
本知识点将深入讲解基于Vue.js实现的表格分页组件,它对于构建交互性强、性能良好的Web应用具有重要意义。 首先,"基于Vuejs的表格分页组件"是指使用Vue.js框架来设计和实现一个能够处理大量数据并分页展示在表格中...
2. CSS样式:定义表格和分页按钮的外观,保持与Bootstrap一致的风格。 3. JavaScript代码:实现数据的异步加载、分页逻辑以及用户交互处理。 4. 可能还包含一个配置对象,用于设置分页的参数,如每页显示条目数、...
在本项目中,"jquery动态表格自定义分页.zip"是一个包含使用jQuery和CSS实现动态表格分页功能的示例。下面将详细讲解这个项目的关键知识点: 1. jQuery:jQuery是一个广泛使用的JavaScript库,它简化了HTML文档遍历...
这可能包括与服务器进行Ajax通信的代码,处理用户交互的函数,以及动态更新表格内容的逻辑。开发者需要理解这些脚本以进行个性化配置或扩展功能。 6. **HTML结构**:"index.html"提供了示例或模板,展示了如何在...
本文将深入探讨“jQuery动态表格数据分页插件”,这款插件能够帮助开发者轻松实现动态表格数据的分页显示,同时支持自定义设置分页参数,以提高网页的性能和用户交互性。 首先,jQuery是一个广泛使用的JavaScript库...
总结,Ajax在静态网页操作表格分页中起到关键作用,通过异步请求和局部更新,提高了网页的交互性和性能。开发者需要理解Ajax的工作原理,学会创建和发送Ajax请求,以及处理响应数据,这样才能有效实现表格分页功能。...
在本示例中,“SSH框架异步表格分页”是指利用SSH框架实现的网页表格数据的异步分页功能。这种功能通常通过AJAX技术来实现,能够提高用户体验,无需刷新整个页面即可加载更多数据。 首先,让我们详细了解一下SSH...
通过以上步骤,我们就完成了基于SSM框架和EasyUI的简单表格分页案例。在实际开发中,可能还需要考虑其他因素,如数据的筛选、排序、自定义操作按钮等,但这个基础示例足以让你了解基本流程。记住,实践是检验真理的...
`script.js`和`packed.js`可能是JavaScript文件,其中包含了处理表格数据、分页逻辑以及与服务器交互的代码。`说明.txt`可能提供了项目或代码的使用指南,而`懒人建站.url`可能是一个快捷方式,指向一个关于快速搭建...
总的来说,jPage插件通过结合jQuery和AJAX技术,实现了表格数据的动态加载和分页,降低了服务器压力,提高了网页性能。在实际项目中,开发者可以根据自身需求调整jPage的配置,结合后端的"action文件"实现灵活的数据...
本示例项目"jquery动态表格数据分页搜索排序代码.zip"提供了使用jQuery实现动态表格数据展示、分页、搜索及排序的功能。下面将详细阐述这些功能的实现原理和步骤。 1. **动态表格数据**: 在网页上动态生成表格...
总的来说,"jQuery表格列表分页样式代码.zip"为前端开发者提供了一套完整的解决方案,使得在网页中实现高效、美观的表格分页功能变得简单易行。通过对`jQuery表格列表分页样式代码`的深入理解和使用,开发者可以提升...
总结来说,“jQuery不刷新分页动态数据表格代码”利用jQuery的事件处理和Ajax功能,结合分页插件,实现了高效、流畅的网页数据表格分页效果。开发者可以借鉴此代码,根据自己的项目需求进行定制,提升网页应用的交互...