间歇性ComboBox问题

时间:2014-05-08 06:47:14

标签: gridview extjs combobox

我正在使用ExtJS 4.2.1.883构建具有RowEditing功能的网格。尽管我确实阅读了文档并在网上广泛搜索,但我几天都在努力解决这个问题。

手头的问题:我的网格中的一列是一个如此定义的ComboBox:

Ext.define('myapp.view.editor.MyComboBox', {
    extend: 'Ext.form.field.ComboBox',
    alias:  'widget.my-combo-box',

    triggerAction: 'all',
    queryMode: 'local',
    displayField: 'ShortName',
    valueField: 'Identity',
    store: Ext.create('myapp.store.business.MyStore'),

    editable: false,
    forceSelection: true,
    emptyText: 'Select an item...',
    multiSelect: false
});

其相应商店扩展Ext.data.Store并且autoLoad: true。它由一个非常简单的模型支持,该模型只有三个type: 'string'字段,并且标识字段设置为idProperty: 'Identity'

现在,当我双击网格中的记录进行编辑时,间歇性地将组合字段变为空(尽管在双击之前它有一个值);更糟糕的是,之后组合不会打开。即使我关闭然后重新打开编辑器。我间歇性地说,因为我无法可靠地重现这种行为。有时它只是。有时它不会,无论我多少次召唤行编辑。另请注意,来自商店的数据不会发生变化,这是一个稳定的数据集,用于从以前版本的系统中进行测试。

昨天我看到另一个看似错误的事件:组合中的第一个条目是重复的。我重新检查后端以确保它只发送一个记录实例。今天,在简单地重新加载应用程序的Web UI之后,我无法重现这一点,即使代码没有在一夜之间发生变化。

[编辑]我的Chrome控制台中没有错误或警告。

ComboBox是否存在此类行为的正当理由?如何使其正常运作?

我还想知道,移动到更高版本的ExtJS 4是否明智,错误。我已经使用了我目前正在使用的版本,主要是由于所有的不一致和变通方法以及事物的大小而无法遵循开发计划(相比之下,我用于后端的Common Lisp似乎是十九世纪的木制玩具,它大多只是工作),但我也不愿意在项目中期切换甚至是次要版本,更不用说切换框架了。

1 个答案:

答案 0 :(得分:1)

您应该将商店设置为字符串,如:

store: 'business.MyStore'

并将商店添加到控制器商店阵列。 我还有像editable ore typeAhead这样的选项。只要您处于编辑模式,只有在您离开编辑时,商店才会被过滤,商店会再次未经过滤。