1

我正在使用 7.2 版的 Sencha EXT JS 应用程序,我们发现了以下场景:

  • 单击下拉列表并选择一个值
  • 点击“完成”
  • 单击下拉列表并选择另一个值
  • 点击“取消”
  • 点击下拉菜单
  • 验证选择的无效值

有一个 sencha fiddle 可以帮助重现这种行为:
https ://fiddle.sencha.com/#view/editor&fiddle/3704

谢谢!

4

2 回答 2

1

对于我们的场景,问题出在我们刷新页面的时候。使用您的覆盖建议,仅当我第二次打开该值时才正确选择。

因此,我们使用以下覆盖来修复此行为:

Ext.define('Ext.override.field.Select', {
    override: 'Ext.field.Select',
    updatePickerValue: function (picker, value) {
        if (!value) value = this.getValue();
        picker.setValue(value);
    }
});

几乎相同,但我们重写了 updatePickerValue 方法。

谢谢你的帮助!

  • 雷纳托·卡瓦略
于 2020-06-29T12:27:15.510 回答
1

看起来是标准功能(不是错误);)无论如何,要修复/更改所有组合框的行为,请使用以下覆盖:

Ext.define('overrides.field.ComboBox', {
    override: 'Ext.field.ComboBox',
    onExpandTap: function() {
        this.getPicker().setValue(this.getValue());
        this.callParent();
    }
});

对单个组合框执行相同操作:

{
    picker: 'edge',
    xtype: 'combobox',
    valueField: 'id',
    displayField: 'description',
    queryMode: 'local',
    store: 'optionsStore',
    listeners: {
        // Add this..
        expand: function(field) {
            field.getPicker().setValue(field.getValue());
        }
    }
}
于 2020-06-26T21:02:03.630 回答