myjoan 发表于 2013-1-29 12:09:50

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.align == 'right') {p.istyle = 'padding-right:16px';}cb = ct.apply(p);                  if (cm.config.mtext)mcb = ct2.apply({value : cm.config.mtext,mcols : cm.config.mcol,mwidth : cm.config.mwidth});   if (cm.config.mtext)mcbm = ctm.apply({valuem : cm.config.mtextm,mcolsm : cm.config.mcolm,mwidthm : cm.config.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)      {      varbo=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:                 },{                layout: 'form',                columnWidth: .50,                labelWidth: 50,                items:                 }]      }]          }],          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:    });          }); 
页: [1]
查看完整版本: grid三层表头