Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当组合框中只有一个值时,如何在组合框中有一个选定值_Javascript_Extjs_Extjs4 - Fatal编程技术网

Javascript 当组合框中只有一个值时,如何在组合框中有一个选定值

Javascript 当组合框中只有一个值时,如何在组合框中有一个选定值,javascript,extjs,extjs4,Javascript,Extjs,Extjs4,我使用的是ExtJS4.2.1,我知道有一个自动选择配置选项,它默认为组合存储的第一个元素 但我要寻找的可能是通过覆盖,仅当组合框的存储中只有一个项时才这样做 我曾想过在商店层面上这样做,但如果我的应用程序中有10个组合框,这是相同代码的10倍 有什么想法吗?到目前为止我已经知道了。如果有人有更好的想法或理由,我不应该使用这个方法来做我的覆盖,请张贴 Ext.define('App.overrides.form.ComboBox', { override: 'Ext.form.C

我使用的是ExtJS4.2.1,我知道有一个自动选择配置选项,它默认为组合存储的第一个元素

但我要寻找的可能是通过覆盖,仅当组合框的存储中只有一个项时才这样做

我曾想过在商店层面上这样做,但如果我的应用程序中有10个组合框,这是相同代码的10倍


有什么想法吗?

到目前为止我已经知道了。如果有人有更好的想法或理由,我不应该使用这个方法来做我的覆盖,请张贴

Ext.define('App.overrides.form.ComboBox', {
        override: 'Ext.form.ComboBox',
        onDataChanged: function () {
            var store = this.getStore();
            if (store != null) {
              if (store.count() == 1) {
                  var value = store.getAt(0).data[this.valueField];
                  this.setValue(value);
              }
            }
            this.callParent();
        }
});

反对的唯一原因是覆盖更改了所有组合的行为。“你真的想要吗?”Saki此刻,我会说是的。那好吧。在我看来,把它应用到所有的组合中是很奇怪的。如果您不想要它,可以使用上面的扩展组合,而不是覆盖,然后进一步扩展这个确实需要该行为的扩展组合。希望它clear@Saki是的,这很清楚,也许扩展组合来创建我自己的会是一个更好的主意。我相信客户最终会想出一个理由,为什么他们希望这种行为在某些情况下不适用,他们总是发现: