`
babydeed
  • 浏览: 238793 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Ext grid合并单元格

    博客分类:
  • Ext
阅读更多

1.js代码
MyGridView=Ext.extend(Ext.grid.GridView,{
   renderHeaders : function(){
       var cm = this.cm, ts = this.templates;
       var ct = ts.hcell,ct2=ts.mhcell;
       
       var cb = [], sb = [], p = {},mcb=[];    
       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});
       }
       var s=ts.header.apply({cells: cb.join(""), tstyle:'width:'+this.getTotalWidth()+';',mergecells:mcb.join("")});
       return s;
   }
});
viewConfig={
          templates:{              
              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>"
                   ),
           mhcell: new Ext.Template(
                   '<td class="x-grid-cell" colspan="{mcols}"><div align="center"><b>{value}</b></div>',
                   "</td>"
                   )    
          }
      };
Ext.onReady(function(){    
  var data=[{id:1,
              name:'小王',
              email:'xiaowang@easyjf.com',
              sex:'男',
              bornDate:'1991-4-4'},
            {id:2,
              name:'小李',
              email:'xiaoli@easyjf.com',
              sex:'男',
              bornDate:'1992-5-6'},
           {id:3,
              name:'小兰',
              email:'xiaoxiao@easyjf.com',
              sex:'女',
              bornDate:'1993-3-7'}            
          ];
  var store=new  Ext.data.JsonStore({
      data:data,
      fields:["id","name","sex","email",{name:"bornDate",type:"date",dateFormat:"Y-n-j"}]
          });    


      var colM=new Ext.grid.ColumnModel([{
                  header:"姓名",
                  mtext:"基本信息",
                  mcol:2,
                  dataIndex:"name",
                  sortable:true,
                  editor:new Ext.form.TextField()},                
               {header:"性别",
                dataIndex:"sex",
                editor:new Ext.form.ComboBox({transform:"sexList",
                                                triggerAction: 'all',
                                                lazyRender:true})
                },
               {header:"出生日期",
                dataIndex:"bornDate",
                 mtext:"其它信息",
                  mcol:2,
                width:120,
                renderer:Ext.util.Format.dateRenderer('Y年m月d日'),
                editor:new Ext.form.DateField({format:'Y年m月d日'})},
               {header:"电子邮件",
                dataIndex:"email",
                sortable:true,
                editor:new Ext.form.TextField()}
               ]);

 


  var grid = new Ext.grid.EditorGridPanel({
      renderTo:"hello",
      title:"学生基本信息管理",
      height:200,
      width:600,    
      cm:colM,
      store:store,
      view:new MyGridView(viewConfig),
      autoExpandColumn:3
  });
});


2.html代码

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>extjs示例测试</title>
<link rel="stylesheet" type="text/css" href="plugins/extjs/ext-2.0/resources/css/ext-all.css" />
<link rel="stylesheet" type="text/css" href="manage/skins/default/stylesheets/style.css" />
<link href="/stylesheet/vifir.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="plugins/extjs/ext-2.0/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="plugins/extjs/ext-2.0/ext-all.js"></script>
<script type="text/javascript" src="editor.js"></script>

</head>

<body>
<div id="box"></div>
<div id="hello"></div>
<select name="sexList" id="sexList" style="display: none;">
      <option>男</option>
      <option>女</option>
</select>

</body>

</html>

程序运行效果

 

 


转自 http://www.vifir.com/bbs/html/20080625/1441807.html

分享到:
评论

相关推荐

    ext grid 合并行

    "ext grid 合并行"就是关于如何在EXT Grid中实现行合并的技术点。 EXT Grid的行合并功能并不像列合并那样内置在默认配置中,因此需要通过一些额外的技巧来实现。以下是一个详细的步骤和知识点解析: 1. **理解EXT ...

    ext表格合并单元格的方法

    ### ext表格合并单元格的方法 #### 背景与概述 在进行Web开发时,特别是在使用Ext JS框架处理表格数据展示的过程中,经常会遇到需要合并单元格的情况。这不仅可以提升数据展示的美观性,还能增强数据的可读性和...

    Ext合并单元格

    首先,我们要了解Ext JS中的Grid Panel是实现合并单元格的主要组件。Grid Panel是一个用于显示大量结构化数据的灵活控件,通过使用Store来存储数据,ColumnModel来定义列的布局和格式。 1. **合并策略**:在Ext JS...

    ExtJS 4.2 Grid组件单元格合并的方法

    ExtJS 4.2 Grid组件本身并没有提供单元格合并功能,需要自己实现这个功能。 目录 1. 原理 2. 多列合并 3. 代码与在线演示 1. 原理 1.1 HTML代码分析 首先创建一个Grid组件,然后查看下的HTML源码。 1.1.1 Grid组件 ...

    extjs单元格合并

    在实现单元格合并时,还需要引入Ext.ux.grid.RowspanView对象,该对象继承自Ext.grid.GridView,实现了单元格合并的功能。下面是相关的Java代码: ``` Ext.ns('Ext.ux.grid'); / * 实现 grid 的 rowspan 效果 * ...

    Extjs 合并单元格

    标题中的“Extjs 合并单元格”指的是在Ext JS框架下实现表格(Grid)中单元格的合并功能。Ext JS是一个强大的JavaScript库,专用于构建富客户端Web应用,其核心组件之一就是数据网格(Data Grid),用于展示大量结构...

    extjs合并单元格

    标题中的“extjs合并单元格”指的是在使用Ext JS这个JavaScript框架时,如何实现表格(Grid)中的单元格合并功能。Ext JS是一个用于构建富客户端Web应用的前端框架,提供了丰富的组件库,其中包括数据网格(Data ...

    一个EXT+js实现的Grid表格合并的例子源码

    EXT虽然没有直接提供合并单元格的功能,但可以通过一些技巧来实现。 "一个EXT+js实现的Grid表格合并的例子源码"这个资源应该包含了如何利用EXT和JavaScript来实现Grid表格合并的示例代码。实现这种方式通常需要对...

    EXT grid导出EXCEL

    EXT Grid是一款基于JavaScript的强大的...在实际开发中,EXT Grid导出Excel的功能可以根据项目需求进行定制,例如添加自定义样式、合并单元格、设置条件格式等。理解上述步骤后,你可以根据具体需求进行扩展和优化。

    Extjs 实现多行合并(rowspan)效果

    4. **CSS样式调整**:为了使合并后的单元格看起来更加自然,可能需要对CSS做一些调整,例如隐藏被合并的单元格,或者调整它们的边距和填充,以避免视觉上的重叠。 在给定的文件列表中,我们有以下三个文件: - `...

    extjs3合并表头 rowspan

    "rowspan"属性在HTML表格中被用来合并行,而在ExtJS 3中,它用于实现类似的功能,即在数据网格的表头中合并单元格,以创建更复杂的布局和更清晰的数据组织。 在ExtJS 3中,如果你需要合并表头,你可能会使用`Ext....

    EXT测试小样例--EXT测试小样例

    8. 表格合并:对于有父子关系的数据,EXT Grid可以通过合并单元格来清晰展示层级关系。 9. 扩展性:EXT Grid可与其他EXT JS组件无缝集成,如工具栏、按钮、下拉框等,扩展其功能。 10. 多选功能:EXT Grid提供了多选...

    最新的GT-Grid vs EXT-Grid例子(超级经典)

    EXT-Grid拥有丰富的内置特性,如拖放、行级编辑、行合并、树形网格等。其用户界面设计精美,易于使用,且与EXT JS的其他组件有良好的集成,适合构建复杂的业务应用。EXT-Grid还提供了强大的数据绑定机制,可以轻松地...

    EXT 复杂表头插件

    2. **合并单元格**:在表头中合并单元格,形成跨列或跨行的标题,使得复杂的数据结构更加清晰。 3. **可展开/折叠**:表头中的部分可以折叠或展开,以隐藏或显示更详细的层级信息,提高界面的可读性和交互性。 4. **...

    ext gridpanel 跨行

    1. **合并单元格**:当需要在一个列中展示多个字段的信息时,可以使用rowspan将多个单元格合并为一个大单元格。 2. **汇总信息**:在表格底部或者特定行进行数据汇总,如总和、平均值等,这时可以跨多行显示结果。 3...

    基于Extjs5.1的列表封装

    它提供了一套完整的组件库,其中`Ext.Grid`是核心组件之一,用于创建数据网格,展示大量结构化数据并支持丰富的交互功能。本篇文章将深入探讨基于ExtJS 5.1的列表封装,以及与之相关的`zGrid.js`和`TaskList.js`两个...

    ExtJs4.0跨行合并(按照指定列合并)(Ext.net 2.0)

    var grid = Ext.create('Ext.grid.Panel', { store: myStore, columns: [ { text: 'ID', dataIndex: 'id' }, { text: 'Name', dataIndex: 'name' }, { text: 'Group', dataIndex: 'group', cellTpl: '...

    ext ToExcel

    在实际应用中,"EXT ToExcel"功能还可以结合其他EXT特性,例如自定义样式、表头和合并单元格,以提供更丰富的导出体验。同时,考虑到浏览器的安全限制,这种方法可能需要用户手动触发文件下载,而不是自动执行,以...

Global site tag (gtag.js) - Google Analytics