2017-11-09 5 views
0

ちょっと色の選択を作成しようとしていて、ユーザーが希望する色を選択したときにコンボボックスの背景を変更したいと思います。Ext 3.2.1でコンボボックスの背景色を変更できない

私はこの関数を呼んでいる

:コンボボックスのスタイルを設定するには、setStyle()呼び出しが、私はこのエラーが表示されます。

Uncaught TypeError: Ext.getCmp(...).setStyle is not a function 
    at Object.fn (...js?v=1510223645:210) 
    at EXTUTIL.Event.fire (ext-all.js?v=1510223645:1735) 
    at J.fireEvent (ext-all.js?v=1510223645:1484) 
    at J.onSelect (ext-all.js?v=1510223645:39222) 
    at J.onViewClick (ext-all.js?v=1510223645:39309) 
    at EXTUTIL.Event.fire (ext-all.js?v=1510223645:1735) 
    at J.fireEvent (ext-all.js?v=1510223645:1484) 
    at J.onClick (ext-all.js?v=1510223645:27169) 
    at HTMLDivElement.h (ext-all.js?v=1510223645:2158) 

マイコード:

xtype: 'combo', 
    width: 340, 
    id: 'test', 
    store: new Ext.data.SimpleStore({ 
     fields: ['text', 'color'], 
     data: [ 
      ['Red', '#db4e4e'], 
      ['Green', '#89b76e'], 
      ['Blue', '#3c8787'], 
     ] 
    }), 
    valueField: 'color', 
    mode: 'local', 
    editable: false, 
    tpl: '<tpl for="."><div class="x-combo-list-item" style="height: 20px; background-color:{color};"></div></tpl>', 
    listeners: { 
     select: { 
      fn: function(combo, value) { 
       Ext.getCmp('test').setStyle('background', value); 
      } 
     }, 
     scope: this 
    } 

私はすでに試した:

this.setFieldStyle('background:#FF0000'); 

しかし、動作しません。

どうすればこの問題を解決できますか?

ありがとうございます。

答えて

1

How can I solve this problem?

あなたはidによってこの

1)Ext.get()戻りコンポーネントのように解決することができます。詳細はExt.util.MixedCollection.getを参照してください。

Ext.get('ext-gen12').setStyle({ 
    background:'red' 
}) 

2)Ext.fly()は、能動素子として渡されたノードと、グローバルに共有フライ要素を取得します。この要素への参照を格納しないでください。domノードは他のコードで上書きできます。

Ext.fly('ext-gen12').setStyle({ 
    background:'yellow' 
}) 

ext-gen12はあなたのcomboboxや他のcomponent IDのidです。ここにもdom要素を渡すことができます。

私はこれがあなたの問題を解決するのに役立つことを願っています。

関連する問題