本人第一篇博客,没什么太多想说的,自己学习EXT有一段时间了,由于本人比较笨,历尽千辛万苦,终于做出来了EXT采用JSON对象的分页查询,拿出来与各位EXT初学者分享一下,最简单的分页了,见笑见笑:
JSP页面代码:
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://"
+ request.getServerName() + ":" + request.getServerPort()
+ path + "/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<link rel="stylesheet" type="text/css"
href="ext/resources/css/ext-all.css">
<script type="text/javascript" src="ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="ext/ext-all.js"></script>
</head>
<body>
<script type="text/javascript" src = 'json.js'></script>
<div align='center' id='panel1'></div>
</body>
</html>
JS文件:
Ext.onReady(function(){
Ext.QuickTips.init();
var record = new Ext.data.Record.create([{
name: 'id'
}, {
name: 'name'
}, {
name: 'tele'
}]);
var store = new Ext.data.Store({
proxy: new Ext.data.HttpProxy({
url:'/JSONTest/data.do'
}),
reader: new Ext.data.JsonReader({
totalProperty:'total',
root: 'infor',
id: 'id'
}, record),
storeInfo: {
field: 'id',
direction: 'asc'
}
});
var grid = new Ext.grid.GridPanel({
store: store,
ddGroup: 'treeDD',
border: false,
enableDrag: true,
columns: [{
id: 'id',
header: '用户ID',
autoWidth: true,
width: 80,
dataIndex: 'id',
sortable: true
}, {
header: '用户姓名',
width: 80,
dataIndex: 'name',
sortable: true
}, {
header: '联系电话',
width: 80,
dataIndex: 'tele',
sortable: true
}],
stripeRows: true,
autoExpandColumn: 1
});
store.load({
params:{
start:0,
limit:4
}
});
var pagingToolbar = new Ext.PagingToolbar({
pageSize:4,
store:store,
displayInfo:true
});
var dataPanel = new Ext.Panel({
style: 'padding:0px 0px 5px 0px',
region: 'center',
title: '联系方式',
layout: 'fit',
autoScroll: true,
closable: true,
tbar:pagingToolbar,
items: grid
});
var panel = new Ext.form.FormPanel({
layout: 'border',
width: 800,
height: 400,
applyTo: 'panel1',
items: [dataPanel]
});
});
后台代码:
public class DataAction extends Action {
Infor infor;
InforDAO id = new InforDAO();
String ID = "id";
String NAME = "name";
String TELE = "tele";
String INFOR = "infor";
String TOTAL = "total";
public ActionForward execute(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) {
// TODO Auto-generated method stub
PrintWriter out = null;
try {
out = response.getWriter();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int start = Integer.parseInt(request.getParameter("start"));
int limit = Integer.parseInt(request.getParameter("limit"));
System.out.println("start is "+start);
System.out.println("limit is "+limit);
int num = id.findAll().size();
JSONObject json = new JSONObject();
List<Infor> list = new ArrayList();
List inf = new ArrayList();
Map map = new HashMap();
list = id.paging(start, limit);
Iterator <Infor> ite = list.iterator();
while(ite.hasNext())
{
Map map1 = new HashMap();
infor = ite.next();
map1.put(ID,infor.getId());
map1.put(NAME, infor.getName());
map1.put(TELE, infor.getTele());
inf.add(map1);
}
map.put(INFOR, inf);
map.put(TOTAL, num);
json = json.fromObject(map);
System.out.println(json.toString());
out.print(json);
return null;
}
}
不过,我总是会遇到问题,比如说GridPanel中 Columns属性中的header属性内容无法显示的问题,希望多多指教
分享到:
相关推荐
在这个"ext分页客户端demo Java js"的示例中,我们将探讨EXTJS如何实现客户端分页,以及如何与后端(如Java)进行数据交互,而无需在服务器端编写额外的Java代码。 EXTJS中的分页组件主要由Ext.grid.Panel和Ext....
EXT分页主要是为了处理大数据集,提高网页加载速度和用户体验。它通过与服务器进行交互,每次只请求和显示一部分数据,而不是一次性加载所有数据。这降低了对服务器资源的需求,并减少了网络传输的数据量。 1. 分页...
1. 前端EXT Grid初始化时,设置好分页参数,如每页记录数。 2. 当用户滚动到Grid的底部或者点击分页导航条时,EXT Grid会触发Ajax请求,向服务器发送当前的页码和每页记录数。 3. DWR接收到请求后,根据这些参数在...
在IT行业中,分页查询是常见的数据展示方式,...这样的实现方式使得前端能够动态地从服务器获取分页数据,减少了初始加载时的数据量,提高了页面响应速度。同时,用户可以方便地浏览和操作大量的数据,提高了用户体验。
本篇文章将详细讲解基于Ext JS框架实现前台分页的原理和方法。 首先,理解“前台分页”概念。前台分页指的是在客户端,即用户的浏览器端进行数据的分页处理,而不是在服务器端。这种方式的优点是减少了服务器的负载...
在EXT JS框架中,"ext tree 分页"是一种优化技术,用于处理大量数据时避免页面卡顿的问题。在EXT JS的树形组件(TreePanel)中,如果一次性加载所有节点,特别是当树结构非常深或者节点数量巨大时,不仅会消耗大量...
标题中的“修复Ext3.0.0中自定义分页的小bug”指的是在Ext JS框架的3.0.0版本中,用户在实现自定义分页功能时遇到的一个问题。Ext JS是一个流行的JavaScript库,主要用于构建富客户端Web应用程序,它的组件库包含了...
- 在Grid中,可以监听`load`事件来处理数据加载完成后的一些逻辑,例如初始化或更新分页信息。 - Paging Toolbar的`beforechange`和`change`事件可用于在用户切换页码前后的操作,比如禁用按钮或显示加载动画。 5...
在"Ext.NET后台分页增删改"这个主题中,我们将探讨如何利用Ext.NET实现数据库后台分页、树形视图操作以及Grid面板的CRUD(创建、读取、更新和删除)功能。 首先,让我们深入了解一下后台分页。在Ext.NET中,为了...
baseParams: {start: 0, limit: 25} // 分页参数:初始开始位置和每页记录数 }); var grid = new Ext.grid.GridPanel({ store: store, columns: [/*...*/], // 列定义 viewConfig: { forceFit: true // 自动...
5. **加载初始数据**: 最后,初始化Grid时,调用数据源的`load`方法,传递初始分页参数,加载第一页数据到Grid中。 总结,本示例展示了如何使用Ext Grid和DWR结合实现一个具有分页功能的列表展示。通过这种方式,...
ExtJs 3.x 分页树(Ext.ux.tree.PagingTreeLoader)是一个强大的扩展,它在处理大量数据时尤其有用,因为树形结构通常需要显示大量的层级和节点。这个组件引入了分页功能,允许用户逐步加载树节点,而不是一次性加载...
例如,Ext的`Ext.onReady`函数用于确保DOM加载完成后再执行代码,这是初始化Ext组件的常见方法。以下是一个简单的例子,展示如何使用MessageBox组件弹出一个警告对话框: ```html Ext.onReady(function() { Ext....
6. **GridPanel**:EXT的表格组件,可展示大量数据并支持排序、过滤、分页等功能。 7. **FormPanel**:用于创建表单,支持各种表单元素,并能进行验证和数据提交。 8. **Drag and Drop**:EXT支持拖放操作,允许...
3. **启动EXT**:使用`Ext.onReady`函数在DOM加载完成后执行EXT的初始化代码,例如弹出一个消息框。 ```javascript Ext.onReady(function() { Ext.MessageBox.alert("你好", "wayfoon"); }); ``` 4. **创建布局...
`ext_page.class.php`可能是用于分页的一个类文件,它可能包含了初始化分页参数、生成分页链接、获取当前页、计算总页数等功能。这样的类通常会有以下方法: 1. `__construct($totalRows, $perPage)`: 初始化总记录...
这部分通常包含项目使用的数据库脚本,可能包括创建表的DDL语句、初始化数据的DML语句等。在本例中,数据库是SQL Server 2000,开发者需要确保数据库环境已正确配置,并根据提供的脚本创建和填充必要的表。 **...
本项目“SH+ext的小型邮件系统”利用Struts1、Hibernate框架,并结合EXT前端组件库,实现了一个功能完备且具有分页功能的邮件应用。接下来,我们将深入探讨其中的关键技术和实现细节。 首先,Struts1是Java Web应用...
它可以进行分页、排序、过滤和编辑,且支持行选择模式,如单选和多选。 3. **Form**:EXT提供了强大的表单组件,如文本字段、下拉框、复选框、单选按钮等,以及表单验证功能。这些组件可以与服务器端进行数据交换,...
- **Ext Application**:它是Ext JS中的顶级构造函数,负责整个应用的初始化、路由管理和模块管理。通过定义应用的配置项,可以设置主视图、控制器、存储等核心组件。 - **MVC模式**:Model-View-Controller模式是...