EXTJS 4.2为RowEditing网格实现多个编辑器xtypes?

时间:2013-11-13 15:07:11

标签: javascript extjs extjs4.2

我正在使用Extjs 4.2,目前我在网格面板上使用RowEditing插件,因此用户可以编辑网格中的记录。给定列的编辑器xtype对于除一条记录之外的所有列都需要是“textfield”。它必须是另一个记录的组合框编辑器。我该如何实现?

这几乎听起来像需要一个自定义编辑器,但我没有看到很多这样的例子,当然,没有根据记录信息切换列的编辑器类型的示例。使用property.Grid ALMOST看起来像我需要的解决方案,除了我正在查看多个记录的相同密钥,我不认为这是什么属性.Grid是用于。

感谢解决方案或任何有用的帮助。感谢。

2 个答案:

答案 0 :(得分:0)

您需要2个编辑器,一个用于文本字段,一个用于组合,以及实用程序功能,它将根据记录值确定并返回正确的编辑器。然后,效用函数将绑定到列的http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.grid.column.Column-method-getEditor方法。

此处有更多信息:https://stackoverflow.com/a/7026075/1038593 另请查看:http://www.sencha.com/forum/showthread.php?139440-changing-columnEditor-per-row-basis&p=637831&viewfull=1#post637831

答案 1 :(得分:0)

这是否是正确的方法:

plugins: [
            Ext.create('Ext.grid.plugin.RowEditing', {
                clicksToEdit: 1,
                listeners: {
                    beforeedit : function(editor, context, eOpts){
                        if (context.record.getData().aliasName == 'document' && context.column.dataIndex == 'value')
                            //setEditor to combobox with column.setEditor()
                        else
                           //setEditor to textfield with column.setEditor()
                    }
                }
            })
],