2011-12-10 11 views
3

フォームの一部であるタブパネルがあります(入力フィールドは別のタブにあります)。フォームに無効なフィールドがあっても、現在のタブにない場合でも、投稿時にユーザーに通知する必要があります。私は最良の方法は、タブの色を変更することだと思う。タブパネルタブを参照する方法

新しいIDを導入せずにタブボタンの参照を取得するにはどうすればよいですか?ここで

は、私がやろうとしたものである私は、タブ内側本体への参照を取得するので、行き止まりであることが判明し、

... 
xtype:'tabpanel', 
plain:true, 
activeTab: 0, 
height:190, 
margin: '10 0 0 0', 
items: [{ 
    title: 'Personal', 
    layout:'column', 
    border:false, 
    items:[{ 
     columnWidth:.5, 
     border:false, 
     layout: 'anchor', 
     defaultType: 'textfield', 
     items: [{ 
      fieldLabel: 'Email', 
      name: 'user[email]', 
      allowBlank: false, 
      listeners: { 
       'validitychange': function(th, isvalid, eOpts) { 
        if(!isvalid) { 
         alert(this.up().up().getId()); 
        }; 
       } 
      }, 
      vtype:'email', 
      anchor:'95%' 
     }] 
    }] 
}] 
+0

を参照してください。 getTabBar()。items [x] 'はあなたが探しているものでしょうか? –

+0

'getTabBar()。getComponent(x)'が動作しました。 – user1063963

答えて

5

全体タブパネルまでの1以上でこれを試してみてください:あなたのフィールドまたは(ボタンなど)パネル内の他のコンポーネントから :

this.up('tabpanel').down('tab').el.applyStyles('background:red') 

問題のタブが最初のタブではない場合、あなたはこのようにセレクタで任意のタブのプロパティを使用することができます... down('tab[text=Example]')。 idプロパティを持っていればそれを使うことができます。もしプロパティを作り、 "ref:FirstTab"のような意味のものに設定することができます。

+0

私は同様の問題に直面していますが、あなたのソリューションはかなり良く見えますが、私はあなたに質問があります。注文が変更されることがあるいくつかのタブがあります。どのようにしてユニークなアイテムIDをコンテナではなく実際のタブに適用できますか?たとえばOPのコードでは、** Personal **と** column **の間に 'itemId:tabId'がありますが、そのIDを検索すると実際のタブではなくコンテナが返されます – krb686