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

Extjs EditorGrid 单元格渲染

阅读更多

实例背景:

使用EditorGrid来显示从数据库读出的的数据,EditorGrid中有个一字段(某一列的所有单元格),这个字段的值是数 字,而且这些数字正好对应的是一个comboBox的valueField的值。

现在要达到的效果就是 :

1.让这个字段显示不再显示原先的数字,而是显示comboBox中对应的displayField的值。

2.当点击这个字段(表中的单元格)的时候,让这个单元格显示那个comboBox。

 

解决方案:

 

Q:首先先解决第二个问题,如何把comboBox绑定在单元格上,实现当单击单元格式,出现comboBox

A:我们知道通过创建列模型可以定义表格由哪些字段组成,并且可以将某一个单元格绑定一个Form控件,

例如:

 

var cm = new Ext.grid.ColumnModel([
		{header:"列名",
                  dataIndex:"对应record对象中的name属性的值",	
                  width:120,	
                  renderer:filterString //用来渲染单元格的funtion,也就是用来改变单元格中显示的内容
                  editor:comboBox对象名}
]);
 

通说上面加入editor属性就可以实现点击单元格弹出comboBox的效果,并且在comboBox中选择的的值,也会自 动的显示在单元格里。当然除了comboxBox外,也可是以textField,只要是Form类型的都可以。

 

Q:然后解决第一个问题。改变单元格显示的内容。

A:通过上面列模型的renderer属性就可以实现改变单元格的值,如上所示,通过filterString方法来改变显示的内 容。代码如下:

function filterString(value,metadata,record){
         var index = weatherTypeStore.find('vf',value);  //value就是单元格原本显示的数字
	 if(index!=-1){  
              return comboBoxStore.getAt(index).data.df;//得到valueField对应的displayField的值
         }  
         return value; 
}
 

下面的代码是comboBox的,主要用于作对照,

 

var comboBox=new Ext.form.ComboBox({
            valueField:'vf',     //与filterString方法中的红色字体对应
            displayField:'df',  //与filterString方法中的红色字体对应
            triggerAction:'all',
            store:comboBoxStore
        });
 

下面逐行解释一下filterString方法中的代码:

 

var index = comboBoxStore.find('vf',value);
在store中查找是否有属性vf的值为变量value的值,找到返回对应的索引,找不到返回-1

return comboBoxStore.getAt(index).data.df; 
根据索引index找到那条记录,得到属性名为df的值
 

 

完了!!哈哈。以上只是自己的总结,有帮助的可以看看,对大家没用的也可以喷喷。因不知道怎么插入本地的效果图,所以大家就凑副一下吧。

分享到:
评论

相关推荐

    ExtJS GRID单元格合并

    在ExtJS 4.0中,我们可以利用`viewConfig`的`cellTpl`模板来控制单元格的渲染。通过修改`cellTpl`,我们可以实现合并单元格的样式。例如,我们可以添加一个条件判断来决定是否应用合并样式: ```javascript ...

    extjs单元格无法复制

    ExtJS GridPanel 单元格无法复制问题解决方案 ExtJS 是一个功能强大的 JavaScript 框架,广泛应用于 Web 开发中。但是,在使用 ExtJS 的 GridPanel 组件时,可能会遇到单元格无法选中复制的问题,特别是在 IE ...

    extjs合并单元格

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

    Extjs 合并单元格

    3. **Cell Rendering**: 要实现单元格合并,需要自定义单元格渲染器(Renderer)。渲染器是一个函数,可以控制单元格如何显示,包括合并单元格。例如,可以检查数据并返回一个包含CSS类的HTML字符串,用于设置单元格...

    extjs单元格合并

    EXTJS单元格合并 EXTJS单元格合并是指在EXTJS GridPanel中实现单元格合并的功能。单元格合并可以使得GridPanel中的数据显示更加简洁和清晰。下面将详细介绍EXTJS单元格合并的实现方法。 一、加入CSS样式 在实现...

    EXTJS单元格变色、行变色

    EXTJS单元格变色、行变色实现方法详解 EXTJS是一个功能强大且流行的JavaScript框架,用于构建复杂的Web应用程序。其中,Grid Panel是EXTJS中最常用的组件之一,用于展示和编辑数据。本文将详细介绍EXTJS实现单元格...

    100行代码解决ExtJs4.1合并单元格问题

    100行代码解决ExtJs4.1合并单元格问题

    ExtJs动态grid的生成

    可以使用分页、延迟渲染等技术来提高大型数据集的处理效率。 9. **扩展性与兼容性** - 确保动态Grid的实现具有良好的扩展性和跨浏览器兼容性,因为这直接影响到应用的用户体验。 10. **实战应用** - 动态Grid常...

    Extjs图片渲染效果

    在ExtJS中,图片渲染效果是实现用户界面美观和交互性的重要组成部分。本文将深入探讨ExtJS图片渲染的效果及其应用。 首先,我们要了解ExtJS中的图片渲染基础。在ExtJS中,图片通常以`Image`组件的形式出现,它可以...

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

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

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

    1. **renderer函数**:这是关键的部分,因为我们需要在渲染每一行时决定哪些单元格应该合并。renderer函数接收一个值和上下文对象作为参数,可以返回一个HTML字符串或DOM元素来自定义单元格的显示。在这个函数中,...

    Ext grid合并单元格

    根据提供的文件信息,我们可以深入探讨如何在 Ext JS 中实现 Grid 的单元格合并功能。此案例主要涉及到了自定义 GridView 的 `renderHeaders` 方法来达到单元格合并的目的,并且还涉及了模板(Template)的使用、...

    ext表格合并单元格的方法

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

    extjs 04_grid 单击事件新发现

    本篇文章将详细探讨EXTJS Grid中的单击事件处理以及如何获取单元格和行的数据。 在EXTJS的Grid组件中,我们可以监听各种事件,如`cellclick`事件,当用户点击网格的单元格时,此事件会被触发。下面是一个简单的示例...

    Extjs教程_第五章_使用grid显示数据(2)

    总之,EXTJS的Grid组件通过单元格渲染器提供了高度的灵活性和定制性,能够处理各种复杂的数据展示需求,包括数据格式化、合并列、生成HTML以及嵌入图像等。通过巧妙地利用这些功能,开发者可以创建出功能强大、界面...

    基于Extjs5.1的列表封装

    1. **自定义列渲染**:可能包含了对列头的定制,如添加图标、链接或颜色标记,或者实现复杂的单元格数据格式化。 2. **排序和过滤**:可能内置了数据排序和过滤机制,使得用户可以根据需求动态调整表格中的数据展示...

    ExtJs表格点击超链接获取行的值

    - `renderer`: 自定义单元格渲染器。 - `colModel/cm`: 列模型,定义列的结构和属性。 - `loadMask`: 是否显示加载遮罩。 ### 结论 在ExtJs中,通过合理利用`renderer`和选择模型,我们可以轻松地在表格中添加...

    extjs 实现动态表头

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

    EXTjs4.0以下合并表格

    4. **Renderer Function**: 渲染器函数是EXTjs中一个重要的概念,它允许我们根据数据动态地生成单元格的内容和样式。在合并表格的场景中,我们可以在渲染器中添加逻辑判断,根据数据决定是否合并单元格。 5. **...

Global site tag (gtag.js) - Google Analytics