- 浏览: 211141 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
zlbdexiaohao:
怎么去掉默认的图标,folderClosedIcon=&quo ...
FLEX 构建完美的带有CheckBox三状态的Tree控件 -
zlbdexiaohao:
看不懂看不懂
FLEX 构建完美的带有CheckBox三状态的Tree控件 -
FYIHDG:
[list][*][list][*][*][list][*][ ...
ImageIO读jpg的时候出现exception:bandOffsets.length is wr -
被剥削的程序员:
你好我在引用你的comboxtree解决问题的时候,发现点击父 ...
ComboBoxTree -
527184687:
[flash=200,200][url][img][list] ...
ext treePanel 更换图标 总结
封装一个动态grid 继承Ext.grid.GridPanel
1.一般只需定义gridcolumns属性即可动态生成grid ,支持各列renderer自定义,
支持store自定义. 其中默认的store,用的是dwrproxy,dwr函数前三个默认参数为(qname,start,pagesize)其他参数在这三个参数之后,
通过DWRfuncParams属性传入。
2.需dwr。
约定:root为data, totalProperty为totalSize
用到的dwrproxy.js
dwrproxy.js
Ext.app.SearchField
PageSizePlugin
1.一般只需定义gridcolumns属性即可动态生成grid ,支持各列renderer自定义,
支持store自定义. 其中默认的store,用的是dwrproxy,dwr函数前三个默认参数为(qname,start,pagesize)其他参数在这三个参数之后,
通过DWRfuncParams属性传入。
2.需dwr。
约定:root为data, totalProperty为totalSize
Ext.namespace("Ext.ux.grid"); /** * @class Ext.ux.grid.DynamicGridPanel * @extends Ext.grid.GridPanel * @author wujuncheng * @constructor * @param {Object} config A configuration object. */ /** * demo: * var demoManage = { return { init1:function(){ //grid 列表头及列表头属性,用于数据映射和表头相关属性定义 var gridcolumns =[ {dataIndex: 'arArticleId', header:'arArticleId1',width:200,hidden:false,renderer:demoManage.toArticleRenderer}, {dataIndex: 'arShort',header:'arShort2',width:200,hidden:false}, {dataIndex: 'arIscommend', header:'arIscommend3',width:200,hidden:false}, {dataIndex: 'arIshot',header:'arIshot4',width:200,hidden:false}, {dataIndex: 'arIstop',header:'arIstop5',width:200,hidden:false}, {dataIndex: 'arHits',header:'arHits6',width:200,hidden:false}, {dataIndex: 'arStatus',header:'arStatus7',width:200,hidden:false}, {dataIndex: 'arCreatetime',header:'arCreatetime8',width:200,hidden:false} ] //grid 的配置属性 大部分属性按默认即可,一般只需定义gridcolumns属性 this.datagrid = new Ext.ux.grid.DynamicGridPanel({ // store:this.store(), //自定store 用法 gridcolumns:gridcolumns, DWRfuncParams:[], DWRfunc:demoManageAction.getArticles }); this.datagrid.loadData(); }, toArticle:function (articleId){ var url = "articleUpdate.jsp?arArticleId="+articleId; window.location.href=url; }, toArticleRenderer:function (articleId){ return "<a href='#' class='' onclick='demoManage.toArticle(\""+articleId+"\")'>修改</a>" }, store:function(){ storepage = this; return new Ext.data.GroupingStore({ proxy:new Ext.cheping.data.DWRProxy({ dwrFunction: this.Action.getArticles, listeners: { 'beforeload': function(dataProxy, params){ // storepage.storeParams = storepage.setStoreParams(params.start); var loadArgs = [ params.query, params.start, storepage.defaultPageSize, ]; params[dataProxy.loadArgsKey] = loadArgs; } } }) sortInfo:{field: 'fielname', direction: "ASC"}, //使用GroupingStore时必须指定sortInfo信息 }); }, }; } */ Ext.ux.grid.DynamicGridPanel=Ext.extend(Ext.grid.GridPanel, { enableChecked:true, //是否有CheckBox。 singleSelect: true, width:'auto', height:document.body.clientHeight, //高度 iconCls :'icon-grid', stripeRows: true, collapsible: true, loadMask: true, animCollapse: false, DWRfuncParams:[], DynamicGridPanel_fields:[], DynamicGridPanel_columns:[], hiddenDefaultTbar:true, GroupingViewConfig:{ markDirty: false, forceFit:false, sortAscText :'正序', sortDescText :'倒序', columnsText:'列显示/隐藏', groupByText:'依本列分组', showGroupsText:'分组显示', groupTextTpl: '{text} ({[values.rs.length]} 条记录)' }, //private initComponent: function(){ this.initDynamicGridPanelFields(); this.initDynamicGridPanelStore(); this.DynamicGridPanel_bbar(); Ext.ux.grid.DynamicGridPanel.superclass.initComponent.call(this); this.iniDynamicGridPanelGrid(); this.initDynamicGridPanel_cm_tbr(); this.view= new Ext.grid.GroupingView(this.GroupingViewConfig) }, pagingConfig:{ pageSize:20, store: this.store, displayInfo:true, plugins: [new Ext.ux.PageSizePlugin()], displayMsg: "当前记录:{0} - {1} 条 总共{2} 条", emptyMsg: "<b>0</b> 条记录" }, //private iniDynamicGridPanelGrid:function(){ this.DynamicGridPanelstoreParams = this.setDynamicGridPanelStoreParams(0); if(this.container){ this.width = Ext.get(this.container).getComputedWidth(); //宽度 this.renderTo=Ext.get(this.container); } }, //private initDynamicGridPanelStore:function(){ if(this.store){ this.store.reader=this.DynamicGridPanel_reader(); }else{ this.store= this.DynamicGridPanel_store(); } this.pagingConfig.store = this.store; this.store.load({params:{start:0,limit:this.pagingConfig.pageSize}}); }, //private initDynamicGridPanel_cm_tbr:function(){ if(!this.cm) if(!this.colModel) this.colModel=this.DynamicGridPanel_cm(); if(!this.hiddenDefaultTbar) this.tbar=this.DynamicGridPanel_ToolBar(); }, setDynamicGridPanelStoreParams:function(start){ var Params = { params: { start:start} }; return Params; }, //private initDynamicGridPanelFields:function(){ for (var i = 0; i < this.gridcolumns.length; i++) { this.DynamicGridPanel_fields.push({name:this.gridcolumns[i].dataIndex}); this.DynamicGridPanel_columns.push(this.gridcolumns[i]); } }, //private DynamicGridPanel_cm:function(){ if (this.enableChecked) { this.DynamicGridPanel_sm = new Ext.grid.CheckboxSelectionModel({ singleSelect: this.singleSelect, moveEditorOnEnter: true, sortable: false }); var arr = [this.DynamicGridPanel_sm]; arr.push(new Ext.grid.RowNumberer({header:'序号',width:40})) var sunfish = this.DynamicGridPanel_columns; for (var i = 0; i < sunfish.length; i++) { arr.push(sunfish[i]); } } else { // arr = eval('([' + this.columns + '])'); arr = this.DynamicGridPanel_columns; } var col = new Ext.grid.ColumnModel(arr); col.defaultSortable = true; return col; }, //private DynamicGridPanel_store:function(){ var DynamicGridPanelStoreParams = this; return new Ext.data.GroupingStore({ proxy:new Ext.cheping.data.DWRProxy({ dwrFunction: DynamicGridPanelStoreParams.DWRfunc, listeners: { 'beforeload': function(dataProxy, params){ DynamicGridPanelStoreParams.DynamicGridPanelstoreParams = DynamicGridPanelStoreParams.setDynamicGridPanelStoreParams(params.start); var loadArgs = [ params.qname, params.start, DynamicGridPanelStoreParams.pagingConfig.pageSize ]; if(DynamicGridPanelStoreParams.DWRfuncParams.length>0){ for(var i=0;i<DynamicGridPanelStoreParams.DWRfuncParams.length;i++){ loadArgs[loadArgs.length]=DynamicGridPanelStoreParams.DWRfuncParams[i]; } } params[dataProxy.loadArgsKey] = loadArgs; } } }), //------------------------------------------------------------------------------------------------ //分组表所需 // groupField:this.DynamicGridPanel_fields[0], // groupOnSort:true, sortInfo:{field: this.gridcolumns[0].dataIndex, direction: "ASC"}, //使用GroupingStore时必须指定sortInfo信息 //------------------------------------------------------------------------------------------------ reader: this.DynamicGridPanel_reader() }); }, //private DynamicGridPanel_reader:function(){ return new Ext.data.JsonReader({ totalProperty: "totalSize", root: "data", fields:this.DynamicGridPanel_fields }); }, //private DynamicGridPanel_bbar:function(){ this.bbar = new Ext.PagingToolbar(this.pagingConfig); }, DynamicGridPanel_ToolBar:function(){ return new Ext.Toolbar( { hidden:this.hiddenDefaultTbar, items:[ '->','关键字: ', this.DynamicGridPanel_Search() ] } ); }, DynamicGridPanel_Search:function(){ return srch = new Ext.app.SearchField({ store: this.store, width:220, paramName : 'qname', Align:'right' }); }, loadData:function() { this.getStore().load(this.DynamicGridPanelstoreParams); }, getInsertRecord:function(){ var obj={}; for(var i=0;i<this.DynamicGridPanel_fields.length;i++){ obj[this.DynamicGridPanel_fields[i].name]=null; } var record = Ext.data.Record.create(this.DynamicGridPanel_fields); var InsertRecord = new record(obj); return InsertRecord; }, getSelectionObjsByName:function(dataName) { if(this.getSelectionModel().getCount()<1){ Ext.MessageBox.alert('提示', '请选择数据,可以是多选!'); return; }else{ var getSelectionRecordsrList=[]; for(var i=0; i<this.getSelectionModel().getSelections().length;i++){ if(null!=this.getSelectionModel().getSelections()[i].data[dataName] && ""!=this.getSelectionModel().getSelections()[i].data[dataName].trim()) getSelectionRecordsrList.push(this.getSelectionModel().getSelections()[i].data[dataName]); } return getSelectionRecordsrList; } }, getSelectionObjByName:function(dataName) { if(this.getSelectionModel().getCount()==1){ return this.getSelectionModel().getSelections()[0].data[dataName]; }else{ Ext.MessageBox.alert('提示', '请选择数据,并且只能选一条!'); return; } }, getSelectedObj:function() { if(this.getSelectionModel().getCount()==1){ return this.getSelectionModel().getSelections()[0].data; }else{ Ext.MessageBox.alert('提示', '请选择数据,并且只能选一条!'); return; } }, getFormRecord:function() { if(this.getSelectionModel().getCount()==1){ return this.getSelectionModel().getSelections()[0]; }else{ Ext.MessageBox.alert('提示', '请选择数据,并且只能选一条!'); return; } } });
public Map extFind(final String hql,final int start,final int pagesize) { List temp = this.getHibernateTemplate().find(getCounthql(hql)); long totalSize = temp!=null&&temp.size()>0?Long.parseLong(temp.get(0)+""):0L; //long totalSize = ((Long)this.getHibernateTemplate().find(counthql).iterator().next()).longValue(); List lst = getHibernateTemplate().executeFind( new HibernateCallback() { public Object doInHibernate(Session s) throws HibernateException, SQLException { Query query = s.createQuery(hql); query.setFirstResult(start); query.setMaxResults(pagesize); List list = query.list(); return list; } }); HashMap map = new HashMap(); map.put("totalSize", totalSize); map.put("data", lst); return map; }
用到的dwrproxy.js
dwrproxy.js
Ext.app.SearchField
PageSizePlugin
发表评论
-
extjs grid设置某行字体颜色 行颜色
2010-05-19 21:42 1917.x-grid-record-red table{//字体 ... -
ext logon
2009-10-21 23:15 1110<html> <head> ... -
ext form 表单提交数据的方法小结
2009-10-21 22:13 1900EXT的form表单ajax提交(默认提交方式) fu ... -
封装Ext tree 扩展功能
2009-10-13 11:31 1057扩展的功能有: 1. 搜索过滤树节点(保留结构) 2. ... -
ext例子
2009-10-10 09:37 846http://www.myext.cn/ -
EXTjs 文件压缩
2009-09-24 21:08 1741之前曾使用过的办法有gzip(我记性不是很好,就是放在IIS中 ... -
解决Extjs文件太大的问题
2009-09-24 10:09 3574在使用Extjs过程中,ext-all.js文件太大,在网络环 ... -
ComboBoxTree
2009-07-25 22:34 3806参考别人的改的 Ext.namespace(" ... -
SearchField
2009-07-18 19:14 2549/* * Ext JS Library 2.1 * ... -
PagingToolbar PageSizePlugin
2009-07-18 14:10 2088/** * Page Size Plugin for ... -
PagingToolbar 扩展
2009-07-18 13:52 2257Ext.namespace('Ext.ux.PagingT ... -
一个扩展的 GridPanel
2009-07-14 14:43 1183分页后可保存checkbox的 ... -
ext 简易上传控件
2009-07-14 14:39 1757//*************************** ... -
extJs之下拉框联动
2009-07-14 14:37 1840// 第一个下拉框 var parentStore ... -
combtree
2009-07-14 14:34 1062var comboxWithTree = new Ext. ... -
ext treePanel 更换图标 总结
2009-07-14 14:33 70561.动态更换图标: 代码 node.on('click', ... -
EXT 一个panel与tree结合读数据库json格式的例子
2009-07-13 13:37 2884var Tree = Ext.tree; Ext.onR ... -
ext3.0 dwrproxy 兼容2.x dwrproxy用法
2009-07-12 21:02 2795经测试 可以用,并且做了修改可以兼容以前的代码格式 Ex ... -
spket Eclipse 安装
2009-07-11 12:40 2283spket最好用了,而且它还支持ext,安装起来很简单.... ... -
ext3.0 ext direct
2009-07-11 11:14 2966具体的工程步骤: 首先,我们来搭建WEB服务端的程序: 这时, ...
相关推荐
EXT + DWR + Struts + Hibernate + Spring Demo
一个ext+dwr 的例子
一个很好的ext+dwr+spring案例!
ExtJs完整例子ext+dwr,希望能给需要地兄弟提供帮助
EXT + DWR 的小例子。在MYECLIPS 上运行。很有借鉴意义
1.DWR 和 Ext 简单例子综合(EXT 2 和 DWR 1 表格编辑控件示例(无数据库版本)) 2.EXT 2 表格编辑控件示例(静态页面,与Java无关版本) 3.文档团队在线通讯录(Ext + DWR + MySQL 4.DWR 检查注册用户名是否存在
Spring+Hibernate+Ext+dwr做的一个简单的grid的增删改查,面板布局, 通过autoload方式载入grid ,以及XML树的建立 ,连接MySql数据库 。JS文件代码在Demo文件夹下,JAVA代码在src下。适合新手
EXT+DWR分页 ,前人基础修改,绝对能用 有问题的大家相互交流, 具体使用请参考我的文章EXT+DWR分页
ext+Json+dwr+spring+hibernate整合项目实例与资源
Ext+dwr+Hibernate+struts进销存管理系统终于完工,大家可以看一下
Ext+Dwr+Struts+Hibernate_进销存管理系统数据库完整,二次开发的好系统,下载后可以运行,
此项目包含了struts+spring+hibernate+extjs+dwr框架的综合使用,希望对大家能有所帮助。实现了增、删、改、查等操作功能。
ext+json+dwr+spring+hibernate整合项目实例与相关资源
内含 ext+dwr+freemark+jasperreort+ireport+echance+oscache+velocite等技术 展示例子:http://zz563143188.iteye.com/blog/1462413 若要下载chm格式请到http://user.qzone.qq.com/563143188 程序源码下载地址10MB...
封装Ext.grid.Grid+dwr实现增删该查
ext和dwr同为ajax框架,各有所长,现在两个配合感觉还是不错的。配合有几种方法,我这是比较简单的一种。
采用Extjs+Dwr+Spring+Hibernate 框架实现的用户注册及登录功能 使用Myeclipse 10.0开发,数据库为MySql。 下载后导入项目,注意把数据库名称和密码改为自己的。然后在Tomcat中部署运行。
EXT + DWR 使用实例
struts2+hibernate+spring+dwr(用户注册)struts2+hibernate+spring+dwr(用户注册)