`

grid三层表头

阅读更多
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 :"  &nbsp;",
            mtext : " &nbsp; ",            
            mcolm : 1,
            mcol : 1,            
            mwidthm : 50,
            mwidth : 50,
            width : 50,
            header : "<div align='center'>车型名</div>",
            dataIndex : "motorcyclename"
        },{
            mtextm :"年度修理任务(辆)" ,
            mtext : "&nbsp;",
            mcolm : 5,
            mcol : 1,
            mwidthm : 250,
            mwidth : 50,
            width : 50,
            header : "<div align='center'>车辆大修</div>",
            dataIndex : "daxiu"
        },{   
            mtext : "&nbsp;",
        	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 : "&nbsp;",
        	mcol : 1,
            mwidth : 50,
            width : 50,
            header : "<div align='center'>车辆小修</div>",
            dataIndex : "xiaoxiu"
        },{
          mtextm : "&nbsp;  ",
            mtext : " &nbsp; ",            
           mcolm : 1,
            mcol : 1,            
             mwidthm : 150,
            mwidth : 150,
            width : 150,
            header : "<div align='center'>车辆总行驶里程<br />sa1(公里)</div>",
            dataIndex : "sa1"
        },{
            mtextm : " &nbsp; ",
            mtext : " &nbsp; ",            
           mcolm : 1,
            mcol : 1,            
             mwidthm : 100,
            mwidth : 100,
            width : 100,
            header : "<div align='center'>下年度车公里<br />保障预算L</div>",
            dataIndex : "l"

        },{
        	 mtextm : " &nbsp; ",
            mtext : " &nbsp; ",            
           mcolm : 1,
            mcol : 1,            
             mwidthm : 130,
            mwidth : 130,
            width : 130,
            header : "<div align='center'>下年度车辆总行驶里程<br />预算SA2(公里)</div>",
            dataIndex : "sa2"

        },{
        	 mtextm : "下年度车辆修理需求预算(台次)",
            mtext : " &nbsp; ",            
           mcolm : 12,
           mcol : 1,          
            mwidthm : 960,
            mwidth : 80,
            width : 80,
            header : "<div align='center'>车辆大修</div>",
            dataIndex : "daxiu"

        },{
            mtext : " &nbsp;  ",      
            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 : " &nbsp;",
            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 grid 表头 三层 插件

    表头的三层插件则是EXT Grid的一种扩展功能,它允许用户在表头部分实现更为复杂和多层次的布局,以更好地管理和组织数据列。这种插件通常用于展现层级关系的数据,比如分类、分组或树状结构的信息。 EXT Grid的表头...

    多表头表格示例(1个是根据GRID做的类,另1个是微软的MSFlexGrid控件的示例)

    另一方面,"Grid多表头示例.rar"则展示了基于GRID的自定义类实现多表头的方法,可以学习到如何扩展基本的GRID控件以满足多表头需求。 总之,理解和掌握这两种多表头表格的实现方式,将有助于开发者在设计和开发过程...

    EXT 复杂表头插件

    在EXT Grid中,表头(Header)是显示列标题的部分,而“复杂表头”则是指具有多层次、多维度展示数据的表头,可以更直观地组织和显示复杂的数据关系。 "EXT 复杂表头插件"是为了扩展EXT Grid的功能,使其能够支持...

    vfp双表头与合计栏

    8、双表头支持平面、三维、贴图三种风格。 9、双表头支持右键锁定列。 10、双表头模式下支持自动排序。(各列提供自定义排序调用接口,可实现多列索引) 11、在双表头单行模式下可设置每列的颜色。 12、可设置双表头及...

    VFP 多表头和合计

    - 使用`GRID`控件:VFP中的`GRID`控件可以方便地创建多层表头,通过设置不同的`ROWHDR`属性来定义各个层次的表头,每个`ROWHDR`代表一个表头级别。 - 自定义样式:除了基本的表头设置,还可以通过调整字体、颜色、...

    Android自动Grid组件02

    针对于优秀的三层工具Remobjects DataAbstract for java 开发一个简单易用的Grid for DA 使用方法很简单: tableGrid = (DataViewGrid) findViewById(R.id.dvg); tableGrid.setDataSource(fDataView);或 List...

    dataGrid复合表头

    例如,在财务报表中,第一层可能是时间周期(如年、季度、月),第二层可能是收入、支出等类别,第三层可能是具体的项目,这样就可以清楚地看出不同时间段内各项收支的对比。 实现`dataGrid`的复合表头有多种方法,...

    Grid++Report6 报表开发者安装包

    6、提供图表功能,包括:饼图、叠加饼图、柱状图、气泡图、折线图、曲线图、散列点图等,支持三维图形。 7、报表数据导出格式丰富,格式包括:Excel、RTF、PDF、图像、HTML、文本,CSV 等。 8、支持数十种一维条码,...

    dbgrid 和 dbgrideh 多表头 导出到 excel

    `DBGridEh`是Enhanced Grid Suite的一部分,提供了丰富的特性,包括多表头、自定义列样式、列排序、过滤等。多表头功能允许开发人员创建多层次的表头,更好地组织和展示复杂的数据结构。在`DBGridEh`中,你可以通过...

    网格类Grid

    - VC++标准库中可能没有提供功能完备的Grid控件,开发者常常会选择第三方库,如GDI+ Grid、DevExpress VCL Grid、ActiveX Grid等,这些控件通常具有更多高级功能和更好的性能。 综上所述,"网格类Grid"是VC++编程...

    组合表头

    例如,一级表头可能表示时间维度(如年、季度、月),二级表头可能表示地区或部门,而三级表头则可能显示具体的项目或任务。这种分层结构让复杂的数据变得易于理解和分析。 在Web开发中,实现组合表头通常涉及前端...

    Android自动Grid组件

    针对于优秀的三层工具Remobjects DataAbstract for java 开发一个简单易用的Grid for DA 使用方法很简单: tableGrid = (DataViewGrid) findViewById(R.id.dvg); tableGrid.setDataSource(fDataView);或 List...

    Grid++Report

    - **列顺序和多层表头**:调整列的显示顺序并创建多级表头,提高数据的可读性。 - **静态框**:作为标签,用于显示固定文本。 - **字段框**:通常放在分组的头尾,显示分组所依据的字段。 - **统计框**:提供...

    ext 扩展子列表头

    例如,如果我们要创建一个分三层的列表头,可以这样配置: ```javascript var grid = Ext.create('Ext.grid.Panel', { columns: [{ text: '一级列', header: { items: [ { text: '二级列1' }, { text: '二级...

    自定义表头

    通过使用媒体查询(Media Queries)和弹性盒模型(Flexbox)或网格布局(Grid Layout),可以实现自适应的表头布局。 文件列表中的`yreport-hidecols4.html`可能是一个示例页面,展示了如何在表头中实现列的隐藏和...

    Grid++Report5.6报表开发工具

    6、提供图表功能,包括:饼图、叠加饼图、柱状图、气泡图、折线图、曲线图、散列点图等,支持三维图形。 7、报表数据导出格式丰富,格式包括:Excel、RTF、PDF、图像、HTML、文本,CSV 等。 8、支持数十种一维条码,...

    Grid++Report5报表工具 版本5.5.0.8

    6、提供图表功能,包括:饼图、叠加饼图、柱状图、气泡图、折线图、曲线图、散列点图等,支持三维图形。 7、报表数据导出格式丰富,格式包括:Excel、RTF、PDF、图像、HTML、文本,CSV 等。 8、支持数十种一维条码,...

    Grid++Report5.5报表工具

    6、提供图表功能,包括:饼图、叠加饼图、柱状图、气泡图、折线图、曲线图、散列点图等,支持三维图形。 7、报表数据导出格式丰富,格式包括:Excel、RTF、PDF、图像、HTML、文本,CSV 等。 8、支持数十种一维条码,...

    DataGridView_MoreHeads.rar

    例如,在一个销售报表中,第一层表头可能是产品类别,第二层则可能是不同的地区,这样可以一目了然地看到不同产品在各地区的销售情况。 在`DataGridView`控件中实现多层表头并不直接支持,但可以通过一些技巧来模拟...

    Grid +锐浪报表打印高级表格

    在易语言中,Grid可能是指特定的第三方组件,提供了丰富的功能,如数据绑定、排序、筛选等。在这个案例中,Grid 5.6版本可能增加了对高级表格打印的支持,使得开发者可以创建更复杂的报表布局。 锐浪报表,全称可能...

Global site tag (gtag.js) - Google Analytics