一,代码使用:Spring+struts+hibernate+ext实现
1,Action代码,后台处理数据:
//分页设置
public ActionForward pageSet(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
PageModel pageModel = customerManager.allCustomers();
int start;
int limit;
int total = pageModel.getTotal();
String json =null; //构造json形式 json = {id:"id",root:[{sn:'',name:''},{}]}数据
try{
start = Integer.parseInt(request.getParameter("start").toString());
limit = Integer.parseInt(request.getParameter("limit").toString());
List datas = pageModel.getDatas();
json = "{totalProperty:"+total+",root:[";
if (start + limit < total) { // start是从0开始的
for (int i = start; i < start + limit; i++) {// 可能有IndexOutOfBoundsException,数据越界,需if条件处理。
Customer customer = (Customer) datas.get(i);
json += "{sn:'" + customer.getSn() + "',name:'"
+ customer.getName() + "',evaluation:'"
+ customer.getEvaluation() + "',source:'"
+ customer.getSource() + "',createTime:'"
+ customer.getCreateTime() + "'}";
if (i != limit + start - 1) {
json += ",";
}
}
}
else {
for (int i = start; i < total; i++) {// 可能有IndexOutOfBoundsException,数据越界,需if条件处理。
Customer customer = (Customer) datas.get(i);
json += "{sn:'" + customer.getSn() + "',name:'" // 必须符合json的格式,不然也无法显示数据
+ customer.getName() + "',evaluation:'"
+ customer.getEvaluation() + "',source:'"
+ customer.getSource() + "',createTime:'"
+ customer.getCreateTime() + "'}";
if (i != total - 1) {
json += ",";
}
}
}
json+="]}";
response.setContentType("text/json;charset=GBK"); //json格式乱码处理
response.getWriter().write(json);
response.getWriter().close();
//关闭数据流,未关闭有些情况下会导致无法加载显示数据
}catch(Exception e) {
e.printStackTrace();
}
return null;
}
注意:
json += "{sn:'" + customer.getSn() + "',name:'"
+ customer.getName() + "',evaluation:'"
+ customer.getEvaluation() + "',source:'"
+ customer.getSource() + "',createTime:'"
+ customer.getCreateTime() + "'}";
就这里的单引号没加上去,让我郁闷了两天,才解决,汗
符合json格式:
json={id:'id',totalProperty:'totalProperty',root:[{sn:'XX',name:'XX'},{}}
所以这里要注意别忘了单引号,而且不能在json两边多加了[],中括号;
下列代码,注重
var store = new Ext.data.Store({
proxy:new Ext.data.HttpProxy({url:"../customer.do?method=pageSet"}),//回到跟目录下
reader:new Ext.data.JsonReader({
totalProperty:'totalProperty',
root:'root',
successProperty :'success'
},fields), //List数据
,其他没什么变化。
2,js代码
Ext.onReady(function(){
// 格式化日期显示
function formatDate(value){
return value ? value.dateFormat('Y, M d') : '';
}
//获得总记录数
// var total;
// JCustomerManager.allCustomers(function(data) {
// total = data.total;
// });
// alert(total);
var fields = Ext.data.Record.create([
{name: 'sn', type: 'string' },
{name: 'name', type: 'string'},
{name: 'evaluation', type: 'string'},
{name: 'source', type: 'string'}, //客户来源
{name:'createTime',type:'date', dateFormat: 'Y/m/d'}
]);
// dataIndex 将特定的列映射到数据源(Data Store)中的数据列
//定义勾选框,不需要可以不定义
var sm = new Ext.grid.CheckboxSelectionModel();
var cm = new Ext.grid.ColumnModel([
new Ext.grid.RowNumberer(),//增加自动编号,不需要可不定义
sm, //勾选框,不需要可不定义
{
id:'sn',
header: "编号",
dataIndex: 'sn'
// width:50
},
{
id:'name',
header: "客户名称",
dataIndex:'name',
// width:50,
editor: new Ext.form.TextField({
allowBlank: false// 不能为空
})
},
{
id:'evaluation',
header: "价值评估",
dataIndex: 'evaluation',
width:70,
editor: new Ext.form.TextField({
allowBlank: false// 不能为空
})
},
{
id:'source',
header: "客户来源",
dataIndex: 'source',
width:70,
editor: new Ext.form.ComboBox({
//transform:"sourceList", //所对应的下拉菜单名称<select name="sourceList"><option></option></select>
triggerAction:"all",
lazyRender:true
})
},
{
header: "录入时间",
dataIndex: 'createTime',
width: 95,
renderer: formatDate, //格式化时间
//rnderer:Ext.util.Format.dateRenderer("Y, M d"),
editor: new Ext.form.DateField({
format: 'y/m/d',
minValue: '1970/01/01',//最小值
disabledDays: [0, 6],// 禁止选择的日期
disabledDaysText: '非上班时间不可录入' })
}
]);
var store = new Ext.data.Store({
proxy:new Ext.data.HttpProxy({url:"../customer.do?method=pageSet"}),//回到跟目录下
reader:new Ext.data.JsonReader({
totalProperty:'totalProperty',
root:'root',
successProperty :'success'
},fields), //List数据
sortInfo:{field:'name', direction:'ASC'},// 排序信息
remoteSort:true
});
// 默认情况下列是可排序的
cm.defaultSortable = true;
// 创建编辑器表格
var grid = new Ext.grid.EditorGridPanel({
store:store,
cm: cm,
width:800,
height:420,
//autoExpandColumn:'name', //根据用户自动填充表格
title:'客户信息管理',// 标题
frame:true,
clicksToEdit:1,//设置点击几次才可编辑
//设置勾选按钮://true单选,false多选
sm:sm,
//工具栏
tools:[{id:"save"},
{id:"help",
handler:function(){Ext.Msg.alert("help","please help me!");}
},{id:"close"}],
// 顶部工具栏按钮
tbar: [{
text: '添加用户',
iconCls:'add',//按钮图标的CSS名称
handler : function(){
}
},{
text: '查看所选',
iconCls: 'details',
handler : function(){
}
},{
text: '删除所选',
iconCls:'remove',
handler : function(){
}
},{
text: '删除所有',
iconCls: 'user-delete',
handler : function(){
}
},{
text: '检索中心',
//iconCls: 'user-delete',
//viewConfig 属性来打开一个新的面板
handler : function(){
}
},{
text: '刷新',
//iconCls: 'user-delete',
pressed:true,
handler : function(){
}
}],
// 底部工具栏按钮
bbar:new Ext.PagingToolbar({
pageSize:15, //每页显示的长度
store:store,
displayInfo:true,
displayMsg:"当前{0}到{1}共{2}",
emptyMsg:"没有数据请返回",
items:null
})
});
grid.render(mydiv);
store.load({params:{start:0,limit:15}});
});
3,jsp页面
<%@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GB18030">
<script type="text/javascript" src="../dwr/engine.js"></script>
<script type="text/javascript" src="../dwr/util.js"></script>
<script type="text/javascript" src="../dwr/interface/JCustomerManager.js"></script>
<script type="text/javascript" src="../ext/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="../ext/ext-all.js"></script>
<!-- 手工添加dwrproxy.js -->
<script type="text/javascript" src="../ext/dwrproxy.js"></script>
<script type="text/javascript" src="../script/edit_grid_customer.js"></script>
<!--注意要从根目录看起,这里目录需要回退 -->
<link rel="stylesheet" type="text/css" href="../ext/resources/css/ext-all.css"/>
<link rel="stylesheet" type="text/css" href="../style/edit_grid_customer.css"/>
<title>Insert title here</title>
</head>
<body>
<div id="mydiv" style="width: 100%;height: 100%"></div>
</body>
</html>
分享到:
相关推荐
ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询ext分页查询...
分页EXT分页EXT分页EXT分页EXT分页EXT分页EXT分页EXT分页EXT分页EXT分页EXT
通过 json 接收后台数据,在前台分页显示数据,这只是我整的一个例子哦,就是 dwr+ext
Ext_Js分页显示案例详解
Ext分页排序 Ext分页排序 Ext分页排序
ext分页 不写Java代码 自己可以用于项目
Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码
用EXT来实现下拉框ComboBox 下拉框可以实现分页
EXT 表格 本地分页的例子 EXT 表格 本地分页的例子
可以直接在本地对数据进行分页显示,很强大!!!!(分页可以是JSON格式 也可以是Array格式)
NULL 博文链接:https://leonel.iteye.com/blog/337383
简单的小例子Ext+servlet 分页 类表 分页 服务器端用的是 servlet
EXT从服务器取回数据分页,树形结构,布局
EXT 3.0 + SERVLET 开发的EXT树表分页功能. 包里包括了工程相关的所有东西(包括引用的EXT) 下载后部署就可用.
基于eclipse项目的ext4表格分页实例,基础而实用
一个完整的 Ext 分页核心代码......
后台使用的是struts2生成Ext所需要的json,把webroot下的ext4下面加入ext的开发包,然后再把create.sql中的脚本在数据库中执行,代码就可以跑起来了,我用的是mysql数据库
真正实现Ext.net的服务器端分页,带存储过程,数据库用aspnet_regsql.exe工具自动生成就行了,不懂的朋友上网查下就知道了
实现前台分页的扩展文件(来源于网络) 博文链接:https://simplehumn.iteye.com/blog/552702
实现分页查询的前台代码,不保证能用,仅供参考,谢谢!!!!!