- 浏览: 833318 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (363)
- 2010年3月 (3)
- 2010年4月 (3)
- Java (116)
- ExtJs (22)
- EJB3.0 (11)
- JQuery (28)
- SqlServer (5)
- Oracle (17)
- hibernate (21)
- struts2 (14)
- php (10)
- JavaScript (11)
- jbpm (6)
- spring (24)
- lucene (2)
- ibatis (7)
- C# (8)
- mysql (11)
- json (3)
- webservice (3)
- 设计模式 (1)
- jdbc (1)
- servlet (2)
- ice (6)
- 日常软件问题 (2)
- 生活 (2)
- iphone (1)
- rest (3)
- ruby (2)
- linux (13)
- quartz (1)
- poi (1)
- redis (13)
- memcached (4)
- nosql (2)
- tomcat调优 (1)
- 项目管理 (0)
最新评论
-
天使建站:
jquery里和数组相关的操作 附带具体的实例 ...
jquery对象数组 -
Cy0941:
$('#formId').form('submit',...) ...
easyui的form表单提交处理 -
shmily2038:
swifth 写道楼主,,你的命令写错啦,,[root@ser ...
centos直接yum安装nginx -
swifth:
楼主,,你的命令写错啦,,[root@server ~]# y ...
centos直接yum安装nginx -
随遇而安DXX:
...
REST
// -------------------- 定义grid--------------------------
var page_size = 10; //定义页面记录最大显示数量
var MyRecord = Ext.data.Record.create([
{name : 'ygId'},
{ name : 'workDate'},
{name : 'workEdDate'},
{name : 'wtBgtime'},
{name : 'wtEdtime' },
{name : 'wtPotime'},
]);
var store = new Ext.data.Store({
proxy : new Ext.data.HttpProxy({
url : 'empAbsentInfoManage.action?method=getlist' //从后台获取数据
}),
reader : new Ext.data.JsonReader({
root : "root",
totalProperty : "total"
}, MyRecord)
});
store.load({
params : {//这两个参数是分页的关键,当你点击 下一页 时,这里的值会传到后台,也就是会重新运行:store.load
start : 0,
limit : page_size
}
});
var sm = new Ext.grid.CheckboxSelectionModel();
var fuuzy = new Ext.form.TextField({
id : "fuzzy",
name : "fuzzy"
});
var grid = new Ext.grid.GridPanel({
region : "center",
// region:"east",
store : store,
columns : [// 设计页面显示的表格信息,字段与Ext.data.Record.create匹配
sm,
{
id : 'id',
header : "人员ID",
width : 75,
sortable : true,
dataIndex : 'ygId'
}, {
header : "开始日期",
width : 75,
sortable : true,
dataIndex : 'workDate'
}, {
header : "开始时间",
width : 75,
sortable : true,
dataIndex : 'wtBgtime'
},{
header : "结束日期",
width : 75,
sortable : true,
dataIndex : 'workEdDate'
}, {
header : "结束时间",
width : 75,
sortable : true,
dataIndex : 'wtEdtime'
}, {
header : "总时间",
width : 75,
sortable : true,
dataIndex : 'wtPotime'
}],
sm:sm,
stripeRows : true,
autoSizeColumns : true,
viewConfig : {
forceFit : true
},
autoExpandColumn : 'id',
title : '员工请假信息管理',
tbar : [fuuzy, {
text : "查询",
handler : queryRecord
}, {
text : "增加",
iconCls : 'add',
handler : addRecord
}, {
text : "修改",
iconCls : 'edit',
handler : updateRecord
}, {
text : "删除",
iconCls : 'delete',
handler : deleteRecord
}],
// 分页
bbar : new Ext.PagingToolbar({
pageSize : page_size,
store : store,
displayInfo : true
})
});
//--------------------------------------------------------------------
//====== 再来看看后台实现 =====================
//获得员工基本信息列表(根据工号模糊查询)
public void GetEmpWorkList() throws Exception {
int start = Integer.parseInt(request.getParameter("start"));
int limit = Integer.parseInt(request.getParameter("limit"));
int end = start + limit;
String fuzzy="";
String sql=
"select * from\n"+
" (\n"+
" select YG_ID, to_char(lt_bgtime,'YYYY-MM-DD HH24:MI:SS'),to_char(lt_EDTIME,'YYYY-MM-DD HH24:MI:SS'), LT_POTIME ,\n"+
" (row_number() over(ORDER BY YG_ID)) rb\n"+
" from ltb \n "+
" ) tt\n" +
" where tt.rb between "+ start+" and "+end; // 关键就在这里,前台的两个参数是用到SQL分页语句中,从而实现了分页查询与前台的分页显示的结合
System.out.print("==============默认SQL ===============>>>>\n"+sql);
Object obj=request.getParameter("fuzzy");
if(obj!=null)
{
fuzzy=obj.toString();
//sql= "select YG_ID, to_char(Lt_bgtime,'YYYY-MM-DD HH24:MI:SS'),to_char(Lt_EDTIME,'YYYY-MM-DD HH24:MI:SS'), LT_POTIME from Ltb where YG_ID like '"+fuzzy+"%'";
sql = "select * from\n"+
" (\n"+
" select YG_ID, to_char(lt_bgtime,'YYYY-MM-DD HH24:MI:SS'),to_char(lt_EDTIME,'YYYY-MM-DD HH24:MI:SS'), LT_POTIME ,\n"+
" (row_number() over(ORDER BY YG_ID)) rb\n"+
" from ltb where YG_ID like '"+fuzzy+"%'\n "+
" ) tt\n" +
" where tt.rb between "+ start+" and "+end; // 关键就在这里,前台的两个参数是用到SQL分页语句中,从而实现了分页查询与前台的分页显示的结合
System.out.print("===============分页SQL ===============>>>>\n"+sql);
}
NativeSQLHelperRemote bll = (NativeSQLHelperRemote) Ejb3Factory
.getInstance().getFacadeRemote("NativeSQLHelper");
List list=bll.queryByNativeSQL(sql); //执行一下SQL语句,这个类是项目的EJB中封装好的,下同
Iterator it=list.iterator();
List blocklist = new ArrayList();
while(it.hasNext())
{
EmpAbsentInfo ewi =new EmpAbsentInfo();
Object[] o =(Object[]) it.next();
if(!o[0].toString().equals(""))
{
ewi.setYgId(o[0].toString());
}
if(o[1]!=null)
{
int index = new String(o[1].toString()).indexOf(" ");
ewi.setWorkDate(o[1].toString().substring(0,index));
ewi.setWtBgtime(o[1].toString().substring(index));
}
if(o[2]!=null)
{
int index = new String(o[2].toString()).indexOf(" ");
ewi.setWorkEdDate(o[2].toString().substring(0,index));
ewi.setWtEdtime(o[2].toString().substring(index));
}
if(o[3]!=null)
{
ewi.setWtPotime(o[3].toString());
}
blocklist.add(ewi);
}
String str = "{total :"+GetInfoCount(fuzzy)+", root:" + JSONUtil.serialize(blocklist) + "}";
//total 给出了记录的总数量
System.out.print(str);
write(str);
}
//获取信息记录总数
public int GetInfoCount(String fuzzy) throws Exception{
String sql=
"select count(*) from ltb " +
"where YG_ID like '%"+fuzzy+"%'";
NativeSQLHelperRemote bll = (NativeSQLHelperRemote) Ejb3Factory
.getInstance().getFacadeRemote("NativeSQLHelper");
Object count= bll.getSingal(sql);
Integer i=Integer.parseInt(count.toString());
return i;
}
//----------------------------------------------------------------------------------------------------------
总结:前台没有什么特别的地方,后台主要是要用到分页查询语句 :row_number() over(),最后就是得到该查询的记录的总数量,返回给前台。EXT中grid分页实现的完整例子---从前台到后台
var page_size = 10; //定义页面记录最大显示数量
var MyRecord = Ext.data.Record.create([
{name : 'ygId'},
{ name : 'workDate'},
{name : 'workEdDate'},
{name : 'wtBgtime'},
{name : 'wtEdtime' },
{name : 'wtPotime'},
]);
var store = new Ext.data.Store({
proxy : new Ext.data.HttpProxy({
url : 'empAbsentInfoManage.action?method=getlist' //从后台获取数据
}),
reader : new Ext.data.JsonReader({
root : "root",
totalProperty : "total"
}, MyRecord)
});
store.load({
params : {//这两个参数是分页的关键,当你点击 下一页 时,这里的值会传到后台,也就是会重新运行:store.load
start : 0,
limit : page_size
}
});
var sm = new Ext.grid.CheckboxSelectionModel();
var fuuzy = new Ext.form.TextField({
id : "fuzzy",
name : "fuzzy"
});
var grid = new Ext.grid.GridPanel({
region : "center",
// region:"east",
store : store,
columns : [// 设计页面显示的表格信息,字段与Ext.data.Record.create匹配
sm,
{
id : 'id',
header : "人员ID",
width : 75,
sortable : true,
dataIndex : 'ygId'
}, {
header : "开始日期",
width : 75,
sortable : true,
dataIndex : 'workDate'
}, {
header : "开始时间",
width : 75,
sortable : true,
dataIndex : 'wtBgtime'
},{
header : "结束日期",
width : 75,
sortable : true,
dataIndex : 'workEdDate'
}, {
header : "结束时间",
width : 75,
sortable : true,
dataIndex : 'wtEdtime'
}, {
header : "总时间",
width : 75,
sortable : true,
dataIndex : 'wtPotime'
}],
sm:sm,
stripeRows : true,
autoSizeColumns : true,
viewConfig : {
forceFit : true
},
autoExpandColumn : 'id',
title : '员工请假信息管理',
tbar : [fuuzy, {
text : "查询",
handler : queryRecord
}, {
text : "增加",
iconCls : 'add',
handler : addRecord
}, {
text : "修改",
iconCls : 'edit',
handler : updateRecord
}, {
text : "删除",
iconCls : 'delete',
handler : deleteRecord
}],
// 分页
bbar : new Ext.PagingToolbar({
pageSize : page_size,
store : store,
displayInfo : true
})
});
//--------------------------------------------------------------------
//====== 再来看看后台实现 =====================
//获得员工基本信息列表(根据工号模糊查询)
public void GetEmpWorkList() throws Exception {
int start = Integer.parseInt(request.getParameter("start"));
int limit = Integer.parseInt(request.getParameter("limit"));
int end = start + limit;
String fuzzy="";
String sql=
"select * from\n"+
" (\n"+
" select YG_ID, to_char(lt_bgtime,'YYYY-MM-DD HH24:MI:SS'),to_char(lt_EDTIME,'YYYY-MM-DD HH24:MI:SS'), LT_POTIME ,\n"+
" (row_number() over(ORDER BY YG_ID)) rb\n"+
" from ltb \n "+
" ) tt\n" +
" where tt.rb between "+ start+" and "+end; // 关键就在这里,前台的两个参数是用到SQL分页语句中,从而实现了分页查询与前台的分页显示的结合
System.out.print("==============默认SQL ===============>>>>\n"+sql);
Object obj=request.getParameter("fuzzy");
if(obj!=null)
{
fuzzy=obj.toString();
//sql= "select YG_ID, to_char(Lt_bgtime,'YYYY-MM-DD HH24:MI:SS'),to_char(Lt_EDTIME,'YYYY-MM-DD HH24:MI:SS'), LT_POTIME from Ltb where YG_ID like '"+fuzzy+"%'";
sql = "select * from\n"+
" (\n"+
" select YG_ID, to_char(lt_bgtime,'YYYY-MM-DD HH24:MI:SS'),to_char(lt_EDTIME,'YYYY-MM-DD HH24:MI:SS'), LT_POTIME ,\n"+
" (row_number() over(ORDER BY YG_ID)) rb\n"+
" from ltb where YG_ID like '"+fuzzy+"%'\n "+
" ) tt\n" +
" where tt.rb between "+ start+" and "+end; // 关键就在这里,前台的两个参数是用到SQL分页语句中,从而实现了分页查询与前台的分页显示的结合
System.out.print("===============分页SQL ===============>>>>\n"+sql);
}
NativeSQLHelperRemote bll = (NativeSQLHelperRemote) Ejb3Factory
.getInstance().getFacadeRemote("NativeSQLHelper");
List list=bll.queryByNativeSQL(sql); //执行一下SQL语句,这个类是项目的EJB中封装好的,下同
Iterator it=list.iterator();
List blocklist = new ArrayList();
while(it.hasNext())
{
EmpAbsentInfo ewi =new EmpAbsentInfo();
Object[] o =(Object[]) it.next();
if(!o[0].toString().equals(""))
{
ewi.setYgId(o[0].toString());
}
if(o[1]!=null)
{
int index = new String(o[1].toString()).indexOf(" ");
ewi.setWorkDate(o[1].toString().substring(0,index));
ewi.setWtBgtime(o[1].toString().substring(index));
}
if(o[2]!=null)
{
int index = new String(o[2].toString()).indexOf(" ");
ewi.setWorkEdDate(o[2].toString().substring(0,index));
ewi.setWtEdtime(o[2].toString().substring(index));
}
if(o[3]!=null)
{
ewi.setWtPotime(o[3].toString());
}
blocklist.add(ewi);
}
String str = "{total :"+GetInfoCount(fuzzy)+", root:" + JSONUtil.serialize(blocklist) + "}";
//total 给出了记录的总数量
System.out.print(str);
write(str);
}
//获取信息记录总数
public int GetInfoCount(String fuzzy) throws Exception{
String sql=
"select count(*) from ltb " +
"where YG_ID like '%"+fuzzy+"%'";
NativeSQLHelperRemote bll = (NativeSQLHelperRemote) Ejb3Factory
.getInstance().getFacadeRemote("NativeSQLHelper");
Object count= bll.getSingal(sql);
Integer i=Integer.parseInt(count.toString());
return i;
}
//----------------------------------------------------------------------------------------------------------
总结:前台没有什么特别的地方,后台主要是要用到分页查询语句 :row_number() over(),最后就是得到该查询的记录的总数量,返回给前台。EXT中grid分页实现的完整例子---从前台到后台
发表评论
-
extjs和jquery各适用于什么场景
2013-01-23 09:49 2075比较点 extjs jquery 是 ... -
extjs和jquery各适用于什么场景
2013-01-21 11:14 14151.应该说粒度不同,extjs ... -
sqlite 数据类型 全面
2011-06-14 13:49 1293一般数据采用的固定的 ... -
extjs direct下载地址
2010-09-11 18:23 1179http://code.google.com/p/direct ... -
json返回数据,首先要做的事
2010-09-08 12:45 1165var json=eval("("+jso ... -
ExtJS 面向对象
2010-08-25 15:15 10051:支持命名空间 <script type=&qu ... -
ExtJS border 布局
2010-08-25 14:42 1992border(边界) 布局是指,把面板组件显示在 北 东 南 ... -
Ext.data-DataProxy/HttpProxy/MemoryProxy/ScriptTagProxy
2010-08-03 09:15 1179Ext.data-DataProxy/HttpProxy/Me ... -
extjs表单的提交
2010-06-24 17:01 12764//ExtJs 表单提交 form.getForm(). ... -
JSONLib解析json数组
2010-06-24 15:33 1736public class JsonHelper { /** ... -
Jsonlib
2010-06-24 13:13 1360使用JSON-LIB可以极大的简化JAVA对象转换成JSON对 ... -
以"对象"方式接收json数据.(解决乱码问题)
2010-06-24 10:36 5426客户端(传输数据无中文): Java代码 //序号控件失去 ... -
extjs的xtype
2010-06-24 09:06 1320基本组件: xtype Class 描述 button E ... -
EXTJS 查询数据,分页显示时传送自定义参数,添加控件的任何事件模板
2010-06-21 13:25 2213EXTJS 查询数据,分页显示时传送自定义参数,添加控件的任何 ... -
Extjs 分页查询的参数问题
2010-06-21 12:57 2415先按条件查询数据,再点下一页保留住查询条件,解决方案是将查询参 ... -
ExtJs的el和contentEl的区别
2010-05-19 16:46 34351、把<div id="div_exam&qu ... -
Ext gird分页学习
2010-04-23 13:33 1062var store = new Ext.data.Store( ... -
SModel了解
2010-04-21 09:35 15211、比较 jsonlib,Xstream,gson,smode ... -
xstream实现JAVA对象和XML的相互转化
2010-04-20 21:56 2516首页 http://xstream.codehaus.org ... -
使用XStream把Java对象XML/JSON格式的序列化和反序列化
2010-04-20 21:54 2042试了一下Thoughtworks的XStream,以测试驱动和 ...
相关推荐
这篇“ExtJS笔记——Grid实现后台分页”探讨了如何在ExtJS的Grid组件中实现高效的后台分页功能。 后台分页是一种常见的数据处理策略,特别是在大数据量的情况下,它将数据分批加载,避免一次性加载所有记录导致的...
在EXT Grid中,DWR提供了对XMLHttpRequest的封装,使得开发者无需直接操作这个对象,而是通过更友好的接口进行操作。 总结来说,"ext grid json分页显示"是通过EXT.js的Grid组件结合DWR的Ajax能力,实现前端数据的...
ext+jsp分页---好不好,大家说了算。下载不扣分,回帖加1分,欢迎下载,童叟无欺。ext+jsp分页---好不好,大家说了算。下载不扣分,回帖加1分,欢迎下载,童叟无欺。ext+jsp分页---好不好,大家说了算。下载不扣分,...
总结来说,本示例通过Ext JS的Grid组件实现了前端的分页展示,同时利用Servlet在后台处理数据分页逻辑,两者配合实现了完整的前后端分页功能。这种分页方式在实际项目中非常常见,有效提高了用户体验,减轻了服务器...
Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码Ext grid PagingToolbar分页实例源码
ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0ext-2.0
- 在Grid中,可以监听`load`事件来处理数据加载完成后的一些逻辑,例如初始化或更新分页信息。 - Paging Toolbar的`beforechange`和`change`事件可用于在用户切换页码前后的操作,比如禁用按钮或显示加载动画。 5...
ext-ms-win-gdi-desktop-l1-1-0.dll 用于解决这个dll文件丢失问题,下载后将此文件放置在相关文件根目录下,即可解决丢失问题
Ext grid中渲染进度条,超帅 源码-----下载不扣分,回帖加1分,欢迎下载,童叟无欺。Ext grid中渲染进度条,超帅 源码-----下载不扣分,回帖加1分,欢迎下载,童叟无欺。Ext grid中渲染进度条,超帅 源码-----下载不扣分...
Ext3-Js-Ajax框架-分页标签-自动排序-文件上传Ext-Js-Ajax框架-分页标签-自动排序-文件上传Ext-Js-Ajax框架-分页标签-自动排序-文件上传Ext-Js-Ajax框架-分页标签-自动排序-文件上传Ext-Js-Ajax框架-分页标签-自动...
EXT 表格 本地分页的例子 EXT 表格 本地分页的例子
在EXT Grid中实现这种功能,主要涉及到以下几个关键点: 1. **扩展控件(ux)**:EXT框架允许开发者创建自定义组件(ux components),这些组件可以被其他EXT应用复用。在本例中,“ux.Andrie.pPageSize”可能是一...
结果在extjs的老家找到一个前辈写的代码,可以在grid上面加上合计, <br>但是却只能合计grid里面的数据,但是我们平常一般是只显示20行或者30行,这样的合计就没有什么意义,我们的合计数据是单独从数据库里面...
在例子中,我们可以看到三种不同场景的应用,这些例子可能展示了GT-Grid和EXT-Grid在处理基础数据展示、高级功能集成以及自定义程度上的差异。例如,可能有一个例子专门对比两者的数据加载速度,另一个可能比较各自...
后台使用的是struts2生成Ext所需要的json,把webroot下的ext4下面加入ext的开发包,然后再把create.sql中的脚本在数据库中执行,代码就可以跑起来了,我用的是mysql数据库
EXTJS Touch 提供了一套完整的UI组件,包括表格、按钮、滑块、选择器等,而Ext.ux.touch.grid-master则是EXTJS Touch中的一个增强型表格组件。这个扩展提供了更丰富的功能,使得在移动设备上处理和展示大量结构化...
本示例主要介绍了如何使用Ext.js这个JavaScript框架来实现前端的分页查询功能。 首先,创建一个名为`resource`的数据存储(Store),它负责从服务器获取数据。这里的`Store`对象定义了字段(fields)、数据源URL...
BERT的训练目标是预测句子中的随机掩码词,实现双向的语境理解。 2. **L-12**:这里的“L-12”表示模型包含12个Transformer编码器层。每一层由多头自注意力机制和前馈神经网络组成,这些层逐层处理输入信息,逐渐...
在本文中,我们将深入探讨如何在EXT Grid中实现服务器端分页,这在处理大量数据时尤为关键。EXT Grid是一款强大的JavaScript组件,用于构建交互式的数据视图,而服务器端分页则是优化性能、提高用户体验的重要策略。...
ext 是 ExtJs 的简称,是一个强大的js 类库。本资源主要包括三个大的文件ext-all.css,ext-base.js,ext-al.js。在引用ext 类库的时候,这三个文件必不可少。另外我还提供了ext2的一个简单例子,以便大家学习交流。