- 浏览: 1341073 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (453)
- Struts2 (4)
- Struts1 (16)
- Spring (9)
- Hibernate (5)
- AJAX (16)
- MS Server (9)
- Oracle (35)
- 测试技术 (5)
- 其他 (37)
- JSF (1)
- EJB (5)
- ASP.NET (9)
- iBATIS (5)
- Struts Spring Hibernate (2)
- HTML (12)
- Eclipse使用 (5)
- 设计模式 (5)
- JSP (32)
- 正则表达式 (2)
- 服务器 (12)
- Java基础 (48)
- MySQL (4)
- 面试 (22)
- UML (1)
- 数据结构 (3)
- Ant (2)
- 规范 (4)
- JavaScript (29)
- 软件使用及技巧 (25)
- PHP (1)
- DWR (3)
- FreeMarker (1)
- ExtJs (17)
- JFreeChart (9)
- Reports (2)
- JavaException (1)
- Java Mail (1)
- Flex (9)
- 异常 (12)
- Log4j (2)
- WebService (1)
- jQuery (1)
- Sybase (2)
- myeclipse_plugin (2)
- Linux (5)
- jbpm (2)
- SCM (1)
- mongoDB (1)
最新评论
-
lihua2008love:
<typeAlias alias="User& ...
IBATIS简单操作 -
lihua2008love:
...
关于项目框架设计的一点学习 -
c_jinglin:
我使用<OBJECT CLASSID="cls ...
这就是个静态页面通过js控制mscomm对某com设备进行访问的例子. -
zlbjava:
赞,用了还不错
java获取请求的ip地址,并解析ip所属地区 -
完美天龙:
cs842813290 写道楼主,我明白的地方:在链表已有N个 ...
JAVA实现双向链表
看了robbin 关于hibernate 分页的老帖(http://www.iteye.com/topic/261),把ext grid 的数据库分页整了下,完全满足需要,呵呵,贴出代码与大家共同学习下:
DAO代码:
服务层:
action 代码:
开始无数据时怎么也不能显示PagingToolbar 的emptyMsg,后来发现空数据时组织格式错误,忘记去掉 [{"rows":[],"results":"0"}]这部分的“[]”,这个小问题折磨了俺好久,呵呵,要细心啊~!
DAO代码:
/** * 获取符合查询条件的记录总数 * @param detachedCriteria hibernate Criteria 查询对象,由service组装 * @return */ public Long getRecordCount(final DetachedCriteria detachedCriteria) { return (Long) getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { Criteria criteria = detachedCriteria .getExecutableCriteria(session); long count = Long.parseLong((criteria.setProjection(Projections .rowCount()).uniqueResult()).toString()); criteria.setProjection(null); return Long.valueOf("" + count); } }, true); } /** * 获取符合条件的查询记录 * @param detachedCriteria * @param startResult * @param limitResult * @return */ public List listByConditions(final DetachedCriteria detachedCriteria, final int startResult, final int limitResult) { return (List) getHibernateTemplate().execute(new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { Criteria criteria = detachedCriteria .getExecutableCriteria(session); criteria.setFirstResult(startResult); criteria.setMaxResults(limitResult); return criteria.list(); } }, true); }
服务层:
/** * 获取所有日志列表 * @param startResult 查询记录起点 * @param limitResult 简要列表每页最大记录数 * @param sortRecord 简要列表排序字段名 * @param dirRecord 简要列表排序类型 DESE/ASC * @return */ public JSONArray getAllLogs(String startResult,String limitResult, String sortRecord,String dirRecord) { try { DetachedCriteria detachedCriteria = DetachedCriteria.forClass(TDeasLog.class); if(dirRecord.equals("ASC")) detachedCriteria.addOrder(Order.asc(sortRecord)); else detachedCriteria.addOrder(Order.desc(sortRecord)); Long count = logDAO.getRecordCount(detachedCriteria);//获取符合条件的记录总数 List list = logDAO.listByConditions(detachedCriteria, Integer.parseInt(startResult), Integer.parseInt(limitResult));//获取符合条件记录 if(list.size()>0){ List jsonlist = new ArrayList(); Iterator it = list.iterator(); while (it.hasNext()){ Log log = (Log )it.next(); Map map = new HashMap(); map.put("taskId", log .getTaskId()); map.put("rwfssj", log .getRwfssj()); map.put("rwjssj", log .getRwjssj()); .... jsonlist.add(map); } Map m = new HashMap(); m.put("results", count.toString()); m.put("rows", jsonlist); JSONArray jsonArray = JSONArray.fromObject(m); return jsonArray; }else return null; } catch (Exception e) { e.printStackTrace(); return null; }
action 代码:
public ActionForward getAllLogs(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { String startResult = request.getParameter("start"); String limitResult = request.getParameter("limit"); String sortRecord = request.getParameter("sort"); String dirRecord = request.getParameter("dir"); JSONArray jsonArray = this.getLogService().getAllLogs(startResult,limitResult,sortRecord,dirRecord); if(jsonArray != null){ String jsonstr = jsonArray.toString(); //去除JSON对象前的[] String json = jsonstr.substring(1, jsonstr.length()-1); response.setContentType("text/json; charset=utf-8"); try { response.getWriter().print(json); } catch (IOException e) { log.error("获取日志实例列表失败,异常:"+e.getMessage()); } }else{//返回空数据,格式:{"rows":[],"results":"0"} List list = new ArrayList(); Map map1 = new HashMap(); list.add(map1); Map m = new HashMap(); m.put("results", "0"); m.put("rows", list); JSONArray json = JSONArray.fromObject(m); String jsonString = json.toString(); String jsonstr =jsonString.substring(1, jsonString.length()-1); response.setContentType("text/json; charset=utf-8"); try { response.getWriter().print(jsonstr); } catch (IOException e) { log.error("获取日志实例列表失败,异常:"+e.getMessage()); } } return null; }
开始无数据时怎么也不能显示PagingToolbar 的emptyMsg,后来发现空数据时组织格式错误,忘记去掉 [{"rows":[],"results":"0"}]这部分的“[]”,这个小问题折磨了俺好久,呵呵,要细心啊~!
var datastore = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({ url: 'logManage.do?method=getAllLogs' }), reader: new Ext.data.JsonReader({ root : 'rows', totalProperty : 'results', id: 'taskID' }, [ {name: 'taskId'}, {name: 'rwfssj'}, {name: 'rwjssj'}, .... ]), remoteSort: true }); datastore.setDefaultSort('taskId','ASC'); datastore.load({params:{start:0, limit:10}}); var sm = new Ext.grid.CheckboxSelectionModel(); var colModel = new Ext.grid.ColumnModel([ new Ext.grid.RowNumberer(), { header:'任务ID', width:100, sortable:true, locked:true, dataIndex:'taskId'}, { header:'任务类型', width:100, sortable:true, locked:false, dataIndex:'rwlb'}, { header:'任务状态', width:100, sortable:true, locked:false, dataIndex:'rwzt'}, ...... ]); var LogGrid = new Ext.grid.GridPanel({ ds : datastore, cm : colModel, sm : sm, id : 'LogGrid', title : '日志列表', autoHeight : true, width : '100%', loadMask : true, buttons : [{ text : '查询', tooltip : '日志查询', handler : logSearch },{ text : '关闭', tooltip : '关闭窗口', handler : closeForm }], buttonAlign : 'right', bbar : new Ext.PagingToolbar({ id : 'pagingbar', pageSize : 10, store : datastore, displayInfo : true }) });
发表评论
-
EXT自定义下拉树形控件
2009-04-24 11:00 1887Ext的树形是大家都非常熟悉也是非常喜爱的东西,笔者第一次 ... -
JSON转换net.sf.json.JSONException: There is a cycle
2009-04-10 08:07 3097at net.sf.json.util.CycleD ... -
AJAX 入门视频之 Ext 2.0.1 Grid 增删改 & DWR 1 实例
2008-09-14 18:06 1328http://dojochina.com/index.php? ... -
mask
2008-07-03 00:05 1582Ext.Msg.alert( String title, St ... -
EXTJS动态树的实现
2008-07-03 00:03 3000http://yahaitt.iteye.com/blog/2 ... -
透析Extjs源码之结合API写事件响应函数
2008-07-03 00:02 1815我在一个论坛看到EXT传 ... -
透析Extjs源码之layout(二)FormPanel与FormLayout的关系
2008-07-03 00:00 2159理解了layout之后,再看看FormPanel源码,发现它指 ... -
透析Extjs源码之layout(一)layout的实现
2008-07-03 00:00 31101、配置选项layout什么时候可用? 只有Ext.Conta ... -
透析Extjs的Ext.js源码(五)分析继承的实现
2008-07-02 23:59 1889ext中有关继承的实现的关键代码如下:(Ext.js中) ex ... -
透析Extjs的Ext.js源码(四)去理解Ext.js
2008-07-02 23:59 1254//先定义匿名方法,第一个括号对里的,必须要有这个括号对,之后 ... -
透析Extjs的Ext.js源码(三)扩展
2008-07-02 23:58 1204if(!Person.extend){//若extend属性还 ... -
透析Extjs的Ext.js源码(二)能在定义时就能执行的方法的写法 function(){...}
2008-07-02 23:57 1580/** * 第二部分:能在 ... -
透析Extjs的Ext.js源码(一)对象属性的添加和设置
2008-07-02 23:55 2281/** * 分析Ext.js */ ... -
ExtJs关于Ext.extend()的说明
2008-07-02 23:54 26691Ext.extend方法是用来实现 ... -
用了ExtJs后,IE打开页面是空白的问题解决
2008-07-02 23:53 2804用了ExtJs后,IE打开页面是空白的问题解决: 好不容易搞 ... -
ExtJs中解决IE的min-width问题
2008-07-02 23:51 2163当使用了ExtJs后,脚本documentElement.cl ...
相关推荐
结果在extjs的老家找到一个前辈写的代码,可以在grid上面加上合计, <br>但是却只能合计grid里面的数据,但是我们平常一般是只显示20行或者30行,这样的合计就没有什么意义,我们的合计数据是单独从数据库里面...
后台使用的是struts2生成Ext所需要的json,把webroot下的ext4下面加入ext的开发包,然后再把create.sql中的脚本在数据库中执行,代码就可以跑起来了,我用的是mysql数据库
自己编写的EXT例子,grid、tree从数据库读取数据动态显示,并进行分页。可以动态更换主题,并存入cookies中。
Ext.net数据库后台分页,树状图,Grid增删改查,由于公司下个项目要用到Ext.net,所以就写了一个小小的列子,说实话Ext.net网上资源太少了!一直在琢磨中!
使用ext3.0 实现 GridPanel 分页显示,调用后台数据 ,格式为json,数据使用 xml 无数据库下载就可以运行,与dwr结合
ext.net一些控件的基本使用方法 包括布局、事件、grid的绑定(包含增删改)以及数据库分页还有表单绑定取值和dateview控件的使用
关于Ext分 页功能的实现。项目用的是js、Ext、servlet。下面贴下代码: var obj = this; var pageSize = 20; //统计结果分页每一页显示数据条数 //在这里使用Store来创建一个类似于数据表的结构,因为需要远程...
第3章 Ext Core实例—.NET语言实现 35 3.1 创建应用并设置开发环境 35 3.2 自定义Membership提供程序 37 3.3 创建母版页 38 3.4 首页设计 42 3.5 产品列表页 47 3.6 产品详细信息页 51 3.7 登录对话框 56 3.8 用户...
<br>在grid的演示部分,包括了分页的数据调用和如何处理来自于dwr的数据(dwr的部分和官方网站公布的方法一样) 以及grid的事件处理。 <br>实例的源代码中没有包括jar包,如果需要运行,请根据jar.jpg所...
包括布局、事件、grid的绑定(包含增删改)以及数据库分页还有表单绑定取值和dateview控件的使用,树的使用,包含拖拉,修改等操作 dll文件为extnet3.5,可自行下载黏贴到要目录下的net35文件夹里即可
5.grid数据加载,分页,编辑删除。 6.用户列表页面点编辑时,在父页面的TabPanel中增加一个标签,下放置一个iframe,将编辑 页面Url(带参数)放入iframe。 7.页面间传值[如:列表页面传ID给编辑页面] 8.FormPanel...
ssh-orcale-ext 实现ext的分页,grid的编辑并异步保存到数据库, 以及viewport等一些ext的基础知识,算是学了两个星期的小结吧。 对新手应该会有帮助。一个完整的工程, 带有.sql文件,导入表和数据,修改数据库连接...
9.5.2 Ext.grid.GroupingView的配置操作 9.6 可拖放的表格 9.6.1 拖放改变表格的大小 9.6.2 在同一个表格里拖放 9.6.3 表格之间的拖放 9.6.4 表格与树之间的拖放 第10章 设计树状结构布局 10.1 TreePanel的...
1,主要是Ext2.2|vs2008|C#|Sql2005|三层|多层,务必是数据库sql2005才可以,因为里面的分页sql语句采用了sql2000不支持的语法。 2,系统里面主要了一些ext的组件:grid,tab,combox,button,toolbutton等,基本上...
4,在中间区域实现了grid 并且实现了分页,根据类型的不同动态显示,因为这个grid是嵌套在tabpanel里面的,这样就可以显示无限个grid,当查看某个grid的时候,无须在请求服务器,就可以查看,另外tabpanel可以动态的...
4,在中间区域实现了grid 并且实现了分页,根据类型的不同动态显示,因为这个grid是嵌套在tabpanel里面的,这样就可以显示无限个grid,当查看某个grid的时候,无须在请求服务器,就可以查看,另外tabpanel可以动态的...
其中edit-grid2.html页面中的数据是利用dwr调spring,进过spring中的业务方法掉hibernate来操作数据库完成的,涉及数据库的增,删,改,查。 涉及分页。利用到了PagingDWRProxy,DWRProxy等。 是在以前发的一个例子...
1.使用ExtJS6.5.0+SSM 2.实现Grid表格的增删改查和分页,数据库使用的是MySql, 3.项目代码和数据脚本齐全 4.Jar齐全,加载即可运行 5.VX:humingxing可随时交流
9.5.2 Ext.grid.GroupingView的配置操作 9.6 可拖放的表格 9.6.1 拖放改变表格的大小 9.6.2 在同一个表格里拖放 9.6.3 表格之间的拖放 9.6.4 表格与树之间的拖放 第10章 设计树状结构布局 10.1 TreePanel的...
因为前段时间有两个专案要用到extjs技术,所以自己学了一段...grid,tree,显示树信息的TreePanel、用于显示表格的GridPanel及EditorGridPanel,还有代表应用程序窗口的Ext.Window,与数据库交付,希望对初学者带来帮助