在 extjs 网格中只为一行添加组合框

Posted

技术标签:

【中文标题】在 extjs 网格中只为一行添加组合框【英文标题】:Add combobox in extjs grid for only one row 【发布时间】:2014-08-22 19:33:16 【问题描述】:

我有一个 extjs 网格,它显示来自商店的数据。最后一列总是空的,除了 store 中的条目,标志is_deleted=0(只有一个条目的 is_deleted=0)。我必须为此条目显示一个组合框,其中包含值编辑和删除。

我目前的网格代码如下:

Ext.define('TasoDesktop.view.taso.popups.accountComments.AccountCommentsGrid', 
extend: 'Ext.grid.GridPanel',
alias: 'widget.tasoAccountCommentsGrid',

title: 'Previous Comments',

initComponent: function () 
    this.store = 'AccountLevelComments';

    this.columns = [
         header: 'Date Entered', dataIndex: 'modified_dt', flex: 0,
         header: 'Comment', dataIndex: 'c_comment', flex: 0 ,
         header: 'Entered by', dataIndex: 'sid', flex: 0 ,
         header: 'Expiry Date', dataIndex: 'valid_until_dt', flex: 0 ,
         header: 'Action', flex: 0 
    ];

    this.height = 400;
    this.width = 900;

    this.viewConfig = 
        stripeRows: true
    ;

    this.autoScroll = true;

    this.callParent(arguments);

);

只有一个 Action 列(在商店中 is_deleted = 0)应该有组合框。我应该如何根据商店价值为其包含组合框?

【问题讨论】:

【参考方案1】:

任何列编辑器都是按列定义的,因此您不能为列和行定义编辑器。您可以做的是有条件地禁用不符合您条件的行的编辑。

为此,请收听beforeedit event 并从侦听器返回 false 是条件不匹配。

【讨论】:

【参考方案2】:

为标题为 Action 的列添加 xtype : 'checkcolumn' 并为该列分配 dataindex 属性值,您需要从存储中分配。

【讨论】:

以上是关于在 extjs 网格中只为一行添加组合框的主要内容,如果未能解决你的问题,请参考以下文章

网格内的 ExtJS 组合框

如何在具有嵌套数据的网格中设置组合框值? Extjs 4.2 Mvc

基于 extjs 网格中的另一个组合框填充字段

基于另一个组合在 ExtJs 中的 EditableGrid 中设置组合框的存储

ExtJS 4 - 当列编辑器是组合框时如何避免网格列值变为空?

如何在 extjs 网格中添加动态文本框