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

时间:2014-08-22 19:33:17

标签: javascript extjs combobox extjs4 extjs4.1

我有一个extjs网格,显示来自商店的数据。最后一列始终为空,除了商店中的条目,其中有一个标志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)应该有组合框。我应该如何根据商店价值包含组合框?

2 个答案:

答案 0 :(得分:2)

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

为此,听取beforeedit event并从侦听器返回false是标准不匹配。

答案 1 :(得分:0)

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