- 浏览: 74592 次
- 性别:
- 来自: 北京
-
最新评论
MyGridView = Ext.extend(Ext.grid.GridView, { renderHeaders : function() { var cm = this.cm, ts = this.templates; var ct = ts.hcell, ct2 = ts.mhcell,ctm=ts.mhcellm; var cb = [], sb = [], p = {}, mcb = [],mcbm=[]; for (var i = 0, len = cm.getColumnCount(); i < len; i++) { p.id = cm.getColumnId(i); p.value = cm.getColumnHeader(i) || ""; p.style = this.getColumnStyle(i, true); if (cm.config[i].align == 'right') { p.istyle = 'padding-right:16px'; } cb[cb.length] = ct.apply(p); if (cm.config[i].mtext) mcb[mcb.length] = ct2.apply({ value : cm.config[i].mtext, mcols : cm.config[i].mcol, mwidth : cm.config[i].mwidth }); if (cm.config[i].mtext) mcbm[mcbm.length] = ctm.apply({ valuem : cm.config[i].mtextm, mcolsm : cm.config[i].mcolm, mwidthm : cm.config[i].mwidthm }); } var s = ts.header.apply({ cells : cb.join(""),//显示字段 tstyle : 'width:' + this.getTotalWidth() + ';', mergecells : mcb.join("")//, // mergecellsm : mcbm.join("") }); var ss = ts.headerm.apply({ // cells : cb.join(""),//显示字段 tstyle : 'width:' + this.getTotalWidth() + ';', // mergecells : mcb.join(""), mergecellsm : mcbm.join("") }); return ss+s; } }); viewConfig = { templates : { headerm : new Ext.Template( ' <table border="0" cellspacing="0" cellpadding="0" style="{tstyle}">', ' <thead> <tr class="x-grid3-hd-row">{mergecellsm} </tr>' + ' </thead>', " </table>"), header : new Ext.Template( ' <table border="0" cellspacing="0" cellpadding="0" style="{tstyle}">', ' <thead> <tr class="x-grid3-hd-row">{mergecells} </tr>' + ' <tr class="x-grid3-hd-row">{cells} </tr> </thead>', " </table>"), mhcellm : new Ext.Template( ' <td class="x-grid3-header" colspan="{mcolsm}" style="width:{mwidthm}px;"> <div align="center">{valuem}</div>', " </td>"), mhcell : new Ext.Template( ' <td class="x-grid3-header" colspan="{mcols}" style="width:{mwidth}px;"> <div align="center">{value}</div>', " </td>") } }; Ext.onReady(function(){ var record=new Ext.data.Record.create([ {name:'deptcoding'},//部门编号 {name:'plantime'},//计划时间 {name:'motorcyclename'},//车型名 {name:'motorcycleid'},//车型id {name:'vehiclecode'},//车辆编号 {name:'daxiu'},//车辆大修 {name:'zhongxiu'},//车辆中修 {name:'fadongji'},//发动机 {name:'qita'}, {name:'xiaoxiu'},//车辆小修 {name:'daxiua'},//车辆大修 {name:'zhongxiua'},//车辆中修 {name:'fadongjia'},//发动机 {name:'qitaa'}, {name:'xiaoxiua'}//车辆小修 ]); var myPageSize=10; var store = new Ext.data.Store({ proxy : new Ext.data.HttpProxy({ url : "carservice/!.action"//路径 }), reader : new Ext.data.JsonReader({ totalProperty : 'totalProperty',//一共有totalPrpperty条数据 root : 'root'//存储后台数据 }, record), baseParams : { start : 0, limit : myPageSize }, listeners:{ beforeload: function(store,options ) { Ext.apply(store.baseParams,{ }); } } }); var cm=new Ext.grid.ColumnModel([ { mtextm :" ", mtext : " ", mcolm : 1, mcol : 1, mwidthm : 50, mwidth : 50, width : 50, header : "<div align='center'>车型名</div>", dataIndex : "motorcyclename" },{ mtextm :"年度修理任务(辆)" , mtext : " ", mcolm : 5, mcol : 1, mwidthm : 250, mwidth : 50, width : 50, header : "<div align='center'>车辆大修</div>", dataIndex : "daxiu" },{ mtext : " ", mcol : 1, mwidth : 50, width : 50, header : "<div align='center'>车辆中修</div>", dataIndex : "zhongxiu" },{ mtext : "总成", mcol : 2, mwidth : 100, width : 50, header : "<div align='center'>发动机</div>", dataIndex : "fadongji" },{ width : 50, header : "<div align='center'>其它</div>", dataIndex : "qita" },{ mtext : " ", mcol : 1, mwidth : 50, width : 50, header : "<div align='center'>车辆小修</div>", dataIndex : "xiaoxiu" },{ mtextm : " ", mtext : " ", mcolm : 1, mcol : 1, mwidthm : 150, mwidth : 150, width : 150, header : "<div align='center'>车辆总行驶里程<br />sa1(公里)</div>", dataIndex : "sa1" },{ mtextm : " ", mtext : " ", mcolm : 1, mcol : 1, mwidthm : 100, mwidth : 100, width : 100, header : "<div align='center'>下年度车公里<br />保障预算L</div>", dataIndex : "l" },{ mtextm : " ", mtext : " ", mcolm : 1, mcol : 1, mwidthm : 130, mwidth : 130, width : 130, header : "<div align='center'>下年度车辆总行驶里程<br />预算SA2(公里)</div>", dataIndex : "sa2" },{ mtextm : "下年度车辆修理需求预算(台次)", mtext : " ", mcolm : 12, mcol : 1, mwidthm : 960, mwidth : 80, width : 80, header : "<div align='center'>车辆大修</div>", dataIndex : "daxiu" },{ mtext : " ", mcol : 1, mwidth : 80, width : 80, header : "<div align='center'>车辆中修</div>", dataIndex : "zhongxiu" }, { mtext : "总成", mcol : 9, mwidth : 720, width : 80, header : "<div align='center'>发动机</div>", dataIndex : "fadongji" },{ width : 80, header : "<div align='center'>变速器</div>", dataIndex : "biansuqi" },{ width : 80, header : "<div align='center'>前桥</div>", dataIndex : "qianqiao" },{ width : 80, header : "<div align='center'>后桥</div>", dataIndex : "houqiao" },{ width : 80, header : "<div align='center'>车架</div>", dataIndex : "chejia" },{ width : 80, header : "<div align='center'>车身</div>", dataIndex : "chesheng" },{ width : 80, header : "<div align='center'>转向系统</div>", dataIndex : "zxxt" },{ width : 80, header : "<div align='center'>制动系统</div>", dataIndex : "zdxt" },{ width : 80, header : "<div align='center'>电气系统</div>", dataIndex : "dqxt" },{ mtext : " ", mcol : 1, mwidth : 80, width : 80, header : "<div align='center'>车辆小修</div>", dataIndex : "xiaoxiu" } ]); var grid = new Ext.grid.GridPanel({ region:'center', frame:true, title:"车辆维修年度任务", loadMask:true, autoWidth:true, viewConfig:{ forceFit:true }, height:500, cm:cm, store:store, view:new MyGridView(viewConfig), bbar:new Ext.PagingToolbar({ pageSize:myPageSize, store:store, displayInfo:true, displayMsg:'显示第{0}条到{1}条记录,一共{2}条', emptyMsg:"没有记录" }), buttonAlign:'left', buttons:[{text:'上报',handler:onReport}] }); function onReport() { var record=grid.getStore().getAt(0); var jsonArray = []; if(record==null) { Ext.Msg.alert('提示','无信息上报!'); return; } jsonArray.push(record.data); data=Ext.encode(jsonArray); Ext.Ajax.request({ url:'carservice/!.action', params:'json='+data, customer:'字定义属性', method:'post', callback:function(options,success,response) { var bo=response.responseText; if(success) { Ext.Msg.alert('提示',bo); }else { Ext.Msg.alert('错误',"请联系管理员!"); } } }); }; //查询 var ptstore = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({url: "carservice/Plan!Yeararray.action"}), reader: new Ext.data.JsonReader({ root: 'root' },[ {name: 'timedisplay'}, {name: 'timevalue'} ]) }); // ptstore.load(); var plantime=new Ext.form.ComboBox({//下拉框 fieldLabel:'计划时间', triggerAction:'all', // 单击触发按钮显示全部数据 store:ptstore, //设置数据源 displayField:'timedisplay', //定义要显示的字段 valueField:'timevalue', //定义值字段 mode:'local', //本地模式 width:100, allowBlank:false, blankText:'计划时间必选!', forceSelection:true, //要求输入值必须在列表中存在 resizable:false, //允许改变下拉列表的大小 typeAhead:true,// 允许自动选择匹配的剩余部分文本 emptyText:'请选择', handleHeight:10//下拉列表中拖动手柄的高度 }); var cxstore = new Ext.data.Store({ proxy: new Ext.data.HttpProxy({url: "carservice/Motorcycle!MotorcycleAll.action"}), reader: new Ext.data.JsonReader({ root: 'root' },[ {name: 'motorcyclename',type:'string'}, {name: 'motorcycleid',type:'string'} ]) }); // cxstore.load(); var cxing=new Ext.form.ComboBox({//下拉框 fieldLabel:'车型', triggerAction:'all', // 单击触发按钮显示全部数据 store:cxstore, //设置数据源 displayField:'motorcyclename', //定义要显示的字段 valueField:'motorcycleid', //定义值字段 mode:'local', //本地模式 width:100, forceSelection:true, //要求输入值必须在列表中存在 resizable:false, //允许改变下拉列表的大小 typeAhead:true,// 允许自动选择匹配的剩余部分文本 emptyText:'请选择', handleHeight:10//下拉列表中拖动手柄的高度 }); var form=new Ext.form.FormPanel({ region:'north', height:145, labelAlign:'right', frame:true, items:[{ xtype: 'fieldset', layout:'column', title: '选择条件', items:[ { layout:'column', items:[{ layout: 'form', columnWidth: .50, labelWidth: 80, items: [plantime] },{ layout: 'form', columnWidth: .50, labelWidth: 50, items: [cxing] }] }] }], buttonAlign:'left', buttons:[{text:'查 询',width:70,handler:onSelectClick},{text:'重 置',width:70,handler:function(){form.getForm().reset();}}] }); var plantime_s,motorcycleid_s; function onSelectClick() { if(!form.getForm().isValid()) { return; } plantime_s=''+plantime.getValue(); motorcycleid_s=''+cxing.getValue(); store.load(); } var viewport=new Ext.Viewport({ layout:'border', items:[form,grid] }); });
发表评论
文章已被作者锁定,不允许评论。
-
前台分页, 我这里总结一下工作中实现的几种 Ext tree 和 grid 的分页问题。
2010-12-09 15:31 21761、tree 的分页。 当树中的叶子节点过多的时 ... -
Ext.grid.GridPanel 加多个 Ext.Toolbar
2010-12-08 16:58 1676搜索条件很多,一行toolbar不够用了,默认情况下ext一行 ... -
仿qwikiOffice,在ExtJS2.0.2下实现的信息提示小窗口Notification
2010-11-25 14:29 1232在 qwikiOffice 中看到有右下角的消息提示框,在系统 ... -
js实现导入导出打印预览
2010-11-05 11:26 1819<%@ page contentType="a ... -
上传 formpanel
2010-08-17 16:52 1099Ext.ns('Flow.deployProcess'); ... -
[Ext扩展]两个来自Ext官方论坛的时间控件扩展,可选择时分秒
2010-07-28 10:29 3609为方便大家使用,我把控件所需的js、css、gif文件都提取 ... -
如何隐藏form表单中的ComboBox与fiedLabel
2010-03-11 18:50 2190如何隐藏form表单中的ComboBox与fiedLabel ... -
Ext.data- Connection/Ajax/Record
2010-03-10 11:43 1006Ext.data.Connection 访问指定的url,这 ... -
Ext grid 动态表头的例子
2010-02-21 10:24 20501.Ext.onReady(function(){ 2 ... -
【转】ExtJS 3.0 优秀扩展简介 (持续更新)
2010-02-21 09:42 748http://atian25.iteye.com/blog/4 ... -
Ext2.2动态生成ColumnModel
2010-02-09 15:35 1736本篇主要介绍动态生成ColumnModel,进而生成动态生成G ... -
gridpanel动态重新加载columnModel与store
2010-02-09 15:06 1519其实很简单的,主要就是以下三项.//重新绑定gridthis. ... -
ExtJS中get、getDom、getCmp、getBody、getDoc的使用(转)
2010-02-09 14:36 3213Ext中包含了几个以get开头的方法,这些方法可以用来得到文档 ... -
Ext2的日期组件只选择年月
2010-02-04 10:37 812使用 和以前使用一样 -
MyEclipse的JavaScript提示插件(JSEclipse)
2010-01-27 10:29 2996MyEclipse的JavaScript提示插件(JSEcli ... -
grid去掉分页 刷新
2010-01-25 10:17 1441Ext.override(Ext.PagingToolbar, ... -
在ExtJs的容器中显示图片,并动态更新
2010-01-25 09:26 2139{ xtype: 'box', //或者x ... -
ext javasript json转换为对象
2010-01-21 15:09 962var json = response.responseT ... -
javascript数据类型转换
2010-01-21 14:48 2256首先我们可以看C中间的强制类型转换,只能存在整数可表示类型和浮 ... -
扩展Ext.form.DateField实现定义日期面板默认展示日期
2010-01-20 16:20 2824用了这么久的EXT,感觉Ext的功能是很全很强了,但任何东西都 ...
相关推荐
表头的三层插件则是EXT Grid的一种扩展功能,它允许用户在表头部分实现更为复杂和多层次的布局,以更好地管理和组织数据列。这种插件通常用于展现层级关系的数据,比如分类、分组或树状结构的信息。 EXT Grid的表头...
另一方面,"Grid多表头示例.rar"则展示了基于GRID的自定义类实现多表头的方法,可以学习到如何扩展基本的GRID控件以满足多表头需求。 总之,理解和掌握这两种多表头表格的实现方式,将有助于开发者在设计和开发过程...
在EXT Grid中,表头(Header)是显示列标题的部分,而“复杂表头”则是指具有多层次、多维度展示数据的表头,可以更直观地组织和显示复杂的数据关系。 "EXT 复杂表头插件"是为了扩展EXT Grid的功能,使其能够支持...
8、双表头支持平面、三维、贴图三种风格。 9、双表头支持右键锁定列。 10、双表头模式下支持自动排序。(各列提供自定义排序调用接口,可实现多列索引) 11、在双表头单行模式下可设置每列的颜色。 12、可设置双表头及...
- 使用`GRID`控件:VFP中的`GRID`控件可以方便地创建多层表头,通过设置不同的`ROWHDR`属性来定义各个层次的表头,每个`ROWHDR`代表一个表头级别。 - 自定义样式:除了基本的表头设置,还可以通过调整字体、颜色、...
针对于优秀的三层工具Remobjects DataAbstract for java 开发一个简单易用的Grid for DA 使用方法很简单: tableGrid = (DataViewGrid) findViewById(R.id.dvg); tableGrid.setDataSource(fDataView);或 List...
例如,在财务报表中,第一层可能是时间周期(如年、季度、月),第二层可能是收入、支出等类别,第三层可能是具体的项目,这样就可以清楚地看出不同时间段内各项收支的对比。 实现`dataGrid`的复合表头有多种方法,...
6、提供图表功能,包括:饼图、叠加饼图、柱状图、气泡图、折线图、曲线图、散列点图等,支持三维图形。 7、报表数据导出格式丰富,格式包括:Excel、RTF、PDF、图像、HTML、文本,CSV 等。 8、支持数十种一维条码,...
`DBGridEh`是Enhanced Grid Suite的一部分,提供了丰富的特性,包括多表头、自定义列样式、列排序、过滤等。多表头功能允许开发人员创建多层次的表头,更好地组织和展示复杂的数据结构。在`DBGridEh`中,你可以通过...
- VC++标准库中可能没有提供功能完备的Grid控件,开发者常常会选择第三方库,如GDI+ Grid、DevExpress VCL Grid、ActiveX Grid等,这些控件通常具有更多高级功能和更好的性能。 综上所述,"网格类Grid"是VC++编程...
例如,一级表头可能表示时间维度(如年、季度、月),二级表头可能表示地区或部门,而三级表头则可能显示具体的项目或任务。这种分层结构让复杂的数据变得易于理解和分析。 在Web开发中,实现组合表头通常涉及前端...
针对于优秀的三层工具Remobjects DataAbstract for java 开发一个简单易用的Grid for DA 使用方法很简单: tableGrid = (DataViewGrid) findViewById(R.id.dvg); tableGrid.setDataSource(fDataView);或 List...
- **列顺序和多层表头**:调整列的显示顺序并创建多级表头,提高数据的可读性。 - **静态框**:作为标签,用于显示固定文本。 - **字段框**:通常放在分组的头尾,显示分组所依据的字段。 - **统计框**:提供...
例如,如果我们要创建一个分三层的列表头,可以这样配置: ```javascript var grid = Ext.create('Ext.grid.Panel', { columns: [{ text: '一级列', header: { items: [ { text: '二级列1' }, { text: '二级...
通过使用媒体查询(Media Queries)和弹性盒模型(Flexbox)或网格布局(Grid Layout),可以实现自适应的表头布局。 文件列表中的`yreport-hidecols4.html`可能是一个示例页面,展示了如何在表头中实现列的隐藏和...
6、提供图表功能,包括:饼图、叠加饼图、柱状图、气泡图、折线图、曲线图、散列点图等,支持三维图形。 7、报表数据导出格式丰富,格式包括:Excel、RTF、PDF、图像、HTML、文本,CSV 等。 8、支持数十种一维条码,...
6、提供图表功能,包括:饼图、叠加饼图、柱状图、气泡图、折线图、曲线图、散列点图等,支持三维图形。 7、报表数据导出格式丰富,格式包括:Excel、RTF、PDF、图像、HTML、文本,CSV 等。 8、支持数十种一维条码,...
6、提供图表功能,包括:饼图、叠加饼图、柱状图、气泡图、折线图、曲线图、散列点图等,支持三维图形。 7、报表数据导出格式丰富,格式包括:Excel、RTF、PDF、图像、HTML、文本,CSV 等。 8、支持数十种一维条码,...
例如,在一个销售报表中,第一层表头可能是产品类别,第二层则可能是不同的地区,这样可以一目了然地看到不同产品在各地区的销售情况。 在`DataGridView`控件中实现多层表头并不直接支持,但可以通过一些技巧来模拟...
在易语言中,Grid可能是指特定的第三方组件,提供了丰富的功能,如数据绑定、排序、筛选等。在这个案例中,Grid 5.6版本可能增加了对高级表格打印的支持,使得开发者可以创建更复杂的报表布局。 锐浪报表,全称可能...