2010-07-20 2 views
0

HI, Я надеюсь, что кто-то может помочь мне здесь с рамкой extjs.extjs показать подтверждение при переключении вкладок

Проблема, с которой я столкнулась, заключается в том, что проверка поля не отображается для вкладок, которые не являются visibele при инициализации с панели.

Он начинает работать только при нажатии на текстовые поля.

Что мне нужно - это что-то, что вынуждает проверку правильности полей для активации вкладок.

EDIT Я придумал этот

Ext.getCmp('aanMakenGebruikerTabPanel').on('tabchange',function(){ 
     AanMakenGebruikerWindow.syncShadow(); 
     Ext.getCmp('Mobiel1Veld').on('render',function(v){v.validate();}); 
     Ext.getCmp('Email1Veld').on('render',function(v){v.validate();}); 
     //console.log("[aanMakenGebruikerTabPanel] resize -- sync"); 
    }); 

EDIT Я решил его с помощью касакдного ПОЭТОМУ ТАКЖЕ ДОСТИГАЕТ элементов в FIELDSET.

Ext.getCmp('aanMakenGebruikerTabPanel').on('tabchange',function(tabPanel,tab){ 
     AanMakenGebruikerWindow.syncShadow(); 
     tab.cascade(function(item) { 
    if (item.isFormField) { 
    item.validate(); 
    } 
}); 
    }); 

спасибо, Ричард

ответ

1

В вашей Tab Panel объекта конфигурации добавить слушателей для beforetabchange/tabchange события. В обработчике вы должны пройти через поля, содержащиеся в активированной вкладке, и активировать проверку каждого поля. Надеюсь это поможет.

+0

Я отредактировал свой вопрос. Вы имели в виду добавить это? Я должен узнать, как петля еще. Так что это идет вперед. – Richard

+1

Да, это общая идея. Это можно сделать, когда вы создаете новую вкладку tabPanel в объекте конфигурации. Обратитесь к api за подробностями добавления определения объекта прослушивателя. Вам не нужно каждый раз получать CCC, событие tabchange предоставляет ссылку на текущую вкладку/панель, в которой есть коллекция содержащихся в ней полей, которые вы можете выполнять и запускать проверку. Я верю, что он у вас есть, проверка будет запускаться только при первой активации вкладки. Возможно, вы не захотите использовать событие рендеринга поля для запуска проверки. – HOCA

+0

Я пытаюсь выяснить, как цикл должен работать. Какие-либо предложения? Я рассмотрю объект конфигурации позже. Я думаю, что это было что-то похожее на прослушиватели: {'eventname': function() {etc}} – Richard

2

Опция deferredRender по умолчанию true. Будет ли это ложной помощи?

{ 
    xtype: 'tabpanel', 
    deferredRender: false, 
    items: [] 
} 
Смежные вопросы