2016-01-16 5 views
0

Я создал панель вкладок в extjs4.2, и то, что я пытаюсь сделать, это получить доступ к значениям в форме вкладки, находясь на другой вкладке. Например, пользователь находится на вкладке A и имеет доступ к значениям на вкладке B. Как получить доступ к другой вкладке?Доступ к значениям различных вкладок в extjs4.2

tabPanel = Ext.create('Ext.tab.Panel', { 
     region: 'center', 
     activeTab: 0, 
     autoScroll: true, 
     items: [ 
       { 
        id:"panel_A", 
        title: "${tr.A}", 
        html: "<iframe src= '"+A_url +"' width='100%' height='100%' id='frm_A' name='frm_A' frameborder=0 />", 
       },{ 
        id:"panel_B", 
        title: "${tr.B}", 
        //disabled:tabs_status, 
        //hidden:hidden, 
        html: "<iframe src='"+B_url +"' width='100%' height='100%' id='frm_B' name='frm_B' frameborder=0 />", 
       }] 
     }); 


    viewport = new Ext.Viewport({ 
     layout:'border', 
     items:[tabPanel] 
    }); 

В этой части одним нажатием кнопки я могу получить доступ к текущему кадру.

new Ext.Toolbar.Button({ 
         id:"btn_show", 
         text: "${tr.Show}", 
         tooltip: "${tr.Show}", 
         handler: function(){view(frmid);} 
        }), 

    function view(frmid) { 

      var A_key = window.frames[frmid].RECORD.getKey(); 
      /* var B_key = window.frames[...].RECORD.getField("HISTORY").getRealValue();*/ 



     } 

ответ

2

Для выбора Ext.ComponentView вы можете использовать Ext.ComponentQuery.

Обеспечивает поиск компонентов внутри Ext.ComponentManager (глобально) или конкретного контейнера Ext.container.Container в документе с аналогичным синтаксисом для селектора CSS. Возвращает массив совпадающих компонентов или пустой массив.

Подробнее о селекторах элементов DOM и компонентов ExtJS в this answer.

Базовый пример того, как вы можете получить доступ к другой вкладке в tabpanel:

Working fiddle

// If you button is child/parent button of a tabpanel its efficient to use down()/up() methods 
// Since we get button component reference as listener function arguments we can select parent tabpanel component, 
// and after it select child component panel (because panel is default xtype for tabpanel items and textfield after it 
panelBTextFieldValue = button.up('tabpanel').down('panel[id=panel_B] textfield[name=panel_B_text_field]').getValue(); 

// If your button is somewhere else you can use Ext.ComponentQuery.query() 
panelBTextFieldValue = Ext.ComponentQuery.query('tabpanel[id=myPanel] panel[id=panel_B] textfield[name=panel_B_text_field]').getValue(); 

// or just if selector textfield[name=panel_B_text_field] specific enought for whole your application 
panelBTextFieldValue = Ext.ComponentQuery.query('textfield[name=panel_B_text_field]').getValue(); 
+0

Если его не совсем то, что вы хотите, дайте мне знать, и я буду обновлять скрипку. –

+0

дорогой, это именно то, что я хочу .. Но не могли бы вы объяснить мне концепцию этой строки кода: panelBTextFieldValue = button.up ('tabpanel'). Down ('panel [id = panel_B] textfield [name = panel_B_text_field ] ') ​​getValue() Я имею в виду, почему я указываю, что это текстовое поле – mikeb

+0

Обновлено скрипка и ответ, если что-то еще неясно, не стесняйтесь спрашивать, я постараюсь помочь. –

Смежные вопросы