`
peteronline
  • 浏览: 262247 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ExtJs grid自定义表头

阅读更多
给表头添加样式或图片
header:' <div style='ddd'>姓名 </div>'

。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:1,
              name:'小李',
              email:'xiaoli@easyjf.com',
              sex:'男',
              bornDate:'1992-5-6'},
          {id:1,
              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
  });
});


.jsp

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

分享到:
评论

相关推荐

    extjs grid 多表头插件

    多表头插件是ExtJS Grid的一个重要特性,它允许我们创建具有多层次、复杂结构的表头,以便更好地组织和呈现数据。在ExtJS Grid中,多表头能够帮助用户更清晰地理解列的分组和关系,提高数据的可读性和分析性。 首先...

    EXTjs grid双层表头的实现 (源代码和示例)

    `GridDoubleHeader.js`可能提供了更高级的特性,例如动态创建表头、自定义表头菜单等,具体功能需要查看源代码或相关文档以了解详情。 在实际开发中,理解EXTjs的组件模型和事件系统对于充分利用其功能至关重要。...

    extjs 实现动态表头

    在IT领域,特别是Web开发中,ExtJS是一个广泛使用的JavaScript框架,它提供了丰富的用户界面组件,包括表格(Grid)等。动态表头是ExtJS中一个高级特性,它允许开发者根据需要在运行时动态地创建和修改表格的列结构...

    ExtJS grid过滤操作

    ExtJS Grid是一个强大的数据展示组件,它允许用户以表格的形式查看和操作大量数据。在实际应用中,数据过滤是常见的需求,以便用户能快速定位到感兴趣的信息。本篇将深入探讨ExtJS Grid的过滤操作,以及如何动态地对...

    extjs3合并表头 rowspan

    在ExtJS 3中,如果你需要合并表头,你可能会使用`Ext.grid.GroupingView`或自定义的视图类。表头合并通常涉及到设置特定的配置选项和处理渲染过程。以下是一些关键知识点: 1. **GroupingView**: 这是ExtJS 3中用于...

    Extjs 自定义树结构实现以及动态表头实现

    在本文中,我们将深入探讨如何使用ExtJS框架来实现自定义树结构以及动态表头的功能。ExtJS是一款强大的JavaScript库,常用于构建富客户端应用程序,它提供了丰富的UI组件和强大的数据绑定机制。VS2015是Visual ...

    extjs3多表头

    - 使用`headerCfg`对象可以自定义表头的样式和行为,例如添加CSS类或图标。 - `tgroupheaders`是另一个可以实现类似效果的组件,它提供了更简单的API,但可能没有那么灵活。 通过以上方法,你可以创建出具有多...

    EXTJS2.2.1中Grid表头的下拉菜单很难看

    在EXTJS 2.2.1版本中,用户可能会发现Grid表头的下拉菜单在视觉呈现上不尽如人意,这可能是由于默认样式或自定义样式配置不当导致的。 EXTJS的Grid组件允许用户对列进行排序、分组、过滤等操作,而表头的下拉菜单...

    Ext grid合并单元格

    具体来说,是重写 GridView 的 `renderHeaders` 方法,该方法用于渲染 Grid 的表头部分。 ### 三、代码分析 #### 1. 自定义 GridView 类 首先,创建了一个名为 `MyGridView` 的类,该类继承自 `Ext.grid.GridView...

    Ext grid合并表头

    通过CSS,我们可以自定义表头的外观,使其与应用的整体设计风格保持一致。在实际开发中,根据需求,我们可能需要调整这些样式规则以满足特定的UI需求。 为了使用`GroupHeaderPlugin`,我们需要在`grid`配置中引入该...

    extjs 双表头

    双表头在ExtJS中可以通过`Ext.grid.header.Container`和`Ext.grid.column.Column`组件的组合来实现。首先,创建一个`headerContainer`,然后在这个容器中添加两个或多个`column`,这些`column`可以设置不同的标题和...

    extjs动态表头,绝对的好东西啊

    动态表头是ExtJS中的一个高级特性,它允许用户在运行时自定义表格的列结构,提供了高度可配置和交互性的体验。这个"extjs动态表头"的资源很可能是一个插件或组件,名为`Ext.ux.grid.DynamicGridPanel.js`,它扩展了...

    ExtJS GRID单元格合并

    在ExtJS 4.0版本中,Grid提供了单元格合并的功能,这在处理复杂数据展示时非常有用,比如汇总信息或者创建表头合并。下面我们将深入探讨如何在ExtJS 4.0 Grid中实现单元格合并,以及其背后的技术细节。 首先,理解...

    Extjs动态GRID

    EXTJS Grid支持自定义表头菜单,用户可以通过右键点击表头来选择排序、隐藏列等操作。开发者可以自定义这个菜单,添加更多功能,如列过滤、列锁定等。 6. 数据源绑定: EXTJS Grid的数据通常来源于Store,一个数据...

    ExtJs使用自定义插件动态保存表头配置(隐藏或显示)

    本文将详细介绍如何在ExtJs中使用自定义插件动态保存表头配置。 首先,我们需要创建一个自定义插件,这里命名为`ux.plugin.ColumnCustom`。这个插件的核心功能是监听`columnschanged`事件,当表头的列发生改变时,...

    ExtJS Filter 实现表格过滤

    表格过滤(Grid Filter)是ExtJS Grid提供的一种功能,用户可以根据需求自定义条件,快速筛选出符合特定条件的行,使得数据浏览更加高效。通过在列头设置过滤器,用户可以对每一列的数据进行过滤操作,如文本、数字...

    Ext3.4.0复杂(多行)表头+锁定多列例子

    GridPanel允许开发者自定义头部(header)和列(columns)。对于多行表头,可以通过创建嵌套的HeaderContainer来实现,每个HeaderContainer可以视为一列,内部可以包含多个ColumnDefinitions。对于锁定列,可以使用...

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

    在ExtJS中实现多行合并(rowspan)的效果,通常是为了在数据表格中展示具有层次结构的数据,或者在某些特定情况...总的来说,这是一次对ExtJS高级特性的实践应用,对于理解ExtJS的自定义能力和数据展示策略非常有帮助。

    Extjs4前台前台grid导出excel

    在本篇文章中,我们将深入探讨如何在ExtJS4中实现前台Grid的数据导出到Excel功能。 首先,我们需要了解`Ext.grid.Panel`,这是ExtJS中的核心组件之一,用于创建数据网格。它能够动态加载数据,提供排序、过滤、分页...

    extjs双表头

    这个JavaScript文件可能定义了新的类或者扩展了ExtJS的内置`Ext.grid.header.Container`类,以支持多级表头的逻辑和交互。它可能包含的方法有设置和获取表头层级、合并单元格、处理排序事件等。 `HeaderColumn.css`...

Global site tag (gtag.js) - Google Analytics