`
babydeed
  • 浏览: 237966 次
  • 性别: 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 合并单元格

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

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

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

    extjs合并单元格

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

    Ext自定义Grid Cell插件

    在实际开发中,我们有时需要在Grid的单元格(Cell)中添加更丰富的交互元素,例如输入框、下拉选择器等,这时就涉及到了`Ext Grid CellEdit`的概念。`CellEdit`允许我们在单个单元格中进行编辑,而不是整个行,提高...

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

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

    EXT grid导出EXCEL

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

    extjs单元格合并

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

    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还提供了强大的数据绑定机制,可以轻松地...

    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 复杂表头插件

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

    ext gridpanel 跨行

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

    基于Extjs5.1的列表封装

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

Global site tag (gtag.js) - Google Analytics