`
xu_wccq
  • 浏览: 130944 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

combo values in Editor Grid Panels combo值显示问题

阅读更多
Rendering combo values in Editor Grid Panels.
editorgrid panel 中combo值显示


当您Editor Grid Panel 中给某一列指定editor为combo box时,, 您要显示combo的display field的值而不是combo 的value值。 您可能需要使用一个combo value为 1,2,3 ,而它依次代替红色、 绿色和蓝色的三颜色。

最好的方式是去覆写Ext.grid.GridView 的 doRender 方法 在doRender(args) 参数中添加其它你需要的参数,

如下为作者覆写的 doRender 方法

Ext.override(Ext.grid.GridView, {
    doRender : function(cs, rs, ds, startRow, colCount, stripe){
        var ts = this.templates, ct = ts.cell, rt = ts.row, last = colCount-1;
        var tstyle = 'width:'+this.getTotalWidth()+';';
        var buf = [], cb, c, p = {}, rp = {tstyle: tstyle}, r;
        for(var j = 0, len = rs.length; j < len; j++){
            r = rs[j]; cb = [];
            var rowIndex = (j+startRow);
            for(var i = 0; i < colCount; i++){
                c = cs[i];
                p.id = c.id;
                p.css = i == 0 ? 'x-grid3-cell-first ' : (i == last ? 'x-grid3-cell-last ' : '');
                p.attr = p.cellAttr = "";
                p.value = c.renderer(r.data[c.name], p, r, rowIndex, i, ds, this.grid);
                p.style = c.style;
                if(p.value == undefined || p.value === "") p.value = "&#160;";
                if(r.dirty && typeof r.modified[c.name] !== 'undefined'){
                    p.css += ' x-grid3-dirty-cell';
                }
                cb[cb.length] = ct.apply(p);
            }
            var alt = [];
            if(stripe && ((rowIndex+1) % 2 == 0)){
                alt[0] = "x-grid3-row-alt";
            }
            if(r.dirty){
                alt[1] = " x-grid3-dirty-row";
            }
            rp.cols = colCount;
            if(this.getRowClass){
                alt[2] = this.getRowClass(r, rowIndex, rp, ds);
            }
            rp.alt = alt.join(" ");
            rp.cells = cb.join("");
            buf[buf.length] = rt.apply(rp);
        }
        return buf.join("");
    }    
}); 


其处理的关键点在
  p.value = c.renderer(r.data[c.name], p, r, rowIndex, i, ds, this.grid); 
在此处添加更多的参数 


接下来你就可以自己定义你的renderer了。

someRenderer = function(v,md,r,ri,ci,s,g){
var f = g.getColumnModel().getCellEditor(ci,ri).field;
var s = f.store;
record = s.getById(v);
if (typeof record != 'undefined') {
return record.data[f.displayField];
} else {
return v;
}       
}; 


如果你的combo 使用remote load数据, (ie triggerAction: 'query', mode: 'remote')
当combo里选择过时,它的下拉列表被过滤了,而不能显示出值来。
如果这样,你可以重新在  var s =f.store 此行时定义一个新的store来作筛选用。


end translate------

  其实我们通常用的combo很少会用到triggerAction:'query'的方式。
使用 triggerAction:'all' 方式就可避免点了下拉时看不到数据的情况。
分享到:
评论
1 楼 dazuiba 2009-09-18  
很不可思议,照常理,这个是一个很常见的应用场景,为什么EXTJS的grid不支持?

另外,在formpanel中,extjs是支持这个的。

相关推荐

    gridctrl_combo_demo.zip_DEMO_cgridctrl combo_grid_grid control_g

    【标题】"gridctrl_combo_demo.zip" 是一个包含C++编程示例的压缩包,主要展示了如何在"grid"控件中集成复选框功能,从而实现更丰富的用户交互。这个DEMO着重于"Cgridctrl combo"的使用,即组合框(ComboBox)与网格...

    easyui的datagrid中editor和combobox的级联

    ### easyui的datagrid中editor和combobox的级联 在前端开发中,easyui是一个非常实用的库,它提供了一套完整的用户界面组件,能够帮助开发者快速构建出功能丰富的Web应用。其中,`datagrid`是easyui提供的一个重要...

    Jquery Combo下拉框示例

    **jQuery Combo下拉框示例详解** 在网页开发中,下拉框(Dropdown List)是一种常用的用户界面元素,用于提供用户选择多个预定义选项。jQuery ComboJS是一个轻量级的库,专门用于创建功能丰富的下拉框组件。它以其...

    MFC 实现Combo Box下拉列表操作

    而Combo Box,则是一种常见的用户界面元素,它可以显示一个可下拉的列表,用户可以从这个列表中选择一项或多项,也可以手动输入文本。 ### MFC中实现Combo Box的关键步骤 根据提供的代码片段,我们可以看到实现一...

    jQuery下拉查询筛选插件Combo Select

    **jQuery下拉查询筛选插件Combo Select** 在Web开发中,为了提高用户体验,经常会使用到下拉选择框,特别是当选项列表很长时。jQuery库提供了一种强大的方式来增强原生HTML元素的功能,其中就包括了`Combo Select`...

    combo-select 模糊查询下拉框

    "combo-select 模糊查询下拉框"是一个前端开发组件,主要用于提高用户在网页中进行数据选择时的交互体验。这个组件结合了下拉框和模糊查询的功能,使得用户可以通过输入关键字快速找到并选择目标选项,尤其适用于...

    jQuery-ComboSelect插件

    需要注意的是,尽管jQuery-ComboSelect提供了许多便利,但在实际项目中,开发者仍需关注性能问题。例如,如果下拉列表包含大量数据,应考虑使用分页或懒加载策略,避免一次性加载所有选项导致页面卡顿。 总的来说,...

    Extjs4下拉菜单ComboBox中用Grid显示通用控件

    - 创建 `GridComboBox` 需要配置 `store`(数据源)、`displayField`(显示字段)、`valueField`(值字段)等基本属性。 - 为了将 `GridPanel` 与 `ComboBox` 结合,你需要创建一个自定义的下拉模板,定义如何展示...

    combo使用添加、删除、查找、设置当前显示

    ### Combo使用添加、删除、查找、设置当前显示 在软件开发过程中,组合框(ComboBox)是一种常见的用户界面元素,用于提供一系列预定义选项供用户选择。本文将详细介绍如何使用组合框进行添加、删除、查找以及设置...

    在一个VB的组合框COMBO中显示数据库一列的所以有记录

    本篇文章将详细解释如何在VB的组合框中显示数据库一列的所有记录。 首先,我们需要理解VB中的组合框(ComboBox)控件。这是一个可下拉的文本框,既可以输入文本,也可以从预设的选项列表中选择。它适用于有限的、...

    ComboList的应用

    这个代码片段的功能是将组合框`Combo1`中索引为4的项目值赋给文本框`Text1`,使得用户界面的文本框显示组合框的某个选定内容。这对于数据展示、用户输入验证或进一步的数据处理都是很有用的。 在实际应用中,`Combo...

    combo控件的用法

    Combo控件是软件开发中常用的一种用户界面元素,它结合了下拉列表和文本框的功能,使得用户在输入文本的同时可以方便地从预定义的选项中选择。在本篇文章中,我们将深入探讨Combo控件的基本概念、使用场景、功能特点...

    vc6重绘的一个combo,可以显示超过combo长度的文本

    标题所提到的“vc6重绘的一个combo,可以显示超过combo长度的文本”,是指通过自定义重绘ComboBox控件的方式,解决了这个限制问题。开发者通常会通过以下步骤实现这一功能: 1. **派生一个新的ComboBox类**:创建一...

    Jquery combo-select

    《jQuery Combo-Select:构建高效的下拉选择器》 在Web开发中,jQuery库因其简洁易用的API和丰富的插件生态,深受开发者喜爱。其中,"jQuery combo-select"是一种常见的交互元素,它将传统的下拉选择器(select)与...

    ext中combo过滤

    - **事件参数解析**:`e` 是一个对象,包含了与查询相关的各种信息,如当前的`ComboBox`实例(`combo`)、查询值(`query`)等。 - **过滤逻辑**: - 检查`e.forceAll`是否为`true`,如果为`true`则表示需要加载所有...

    下框组件下拉选择面板为多列Grid的实现

    "下框组件下拉选择面板为多列Grid的实现"是一个高级的UI设计,它扩展了传统下拉框的功能,使得在有限的屏幕空间内展示更多信息成为可能。这个组件尤其适用于数据密集型应用,如表格数据管理或配置设置,它能帮助用户...

    Ext 将grid渲染到combox

    通常情况下,`ComboBox` 用于展示和选择单个值,而 `Grid` 用于展示多行数据。然而,在某些场景下,我们可能需要在一个 `ComboBox` 下拉菜单中展示更多的信息,比如表格形式的数据,这就需要用到 XTemplate。 ...

    elementUI_treeTable_comboxGrid.benson.2019.05.131041.rar

    Tree Table结合了表格和树状结构的特点,适用于显示层次分明的数据,如组织架构、文件目录等。它提供了展开/折叠节点、筛选、排序等功能,使得复杂数据的展示和操作变得直观易用。在Vue.js中,使用Element UI的Tree ...

    jQuery下拉查询筛选插件Combo Select.zip

    jQuery下的 Combo Select 插件是一种高效且用户友好的下拉查询筛选工具,广泛应用于网页开发中,特别是需要在大量数据中快速查找和选择项时。这个插件是基于HTML5技术构建的,确保了在现代浏览器中的兼容性和性能。...

    COMBO下拉框自动变宽

    标题“COMBO下拉框自动变宽”涉及到一个功能,即让COMBO Box的宽度根据其中显示的内容动态调整,以确保所有文本都能完全可见,而不会被截断。这种功能在设计用户界面时非常实用,因为它提供了更好的可读性和用户体验...

Global site tag (gtag.js) - Google Analytics