Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.07.2012, 02:02
Профессор
Отправить личное сообщение для potkin Посмотреть профиль Найти все сообщения от potkin
 
Регистрация: 23.08.2008
Сообщений: 162

Динамическое добавление и удаление одной и тойже вкладки в Ext.tab.Panel
Имеется Ext.FormPanel которую и надо динамически добавлять и удалять из Ext.tab.Panel.
var PanelPassport = new Ext.FormPanel({
        title: txtPassport,
        frame: true,
        monitorValid: true,
        defaultType: 'textfield',
        items: [
            {
                xtype: 'textfield', fieldLabel: txtSeries, name: "DirContractorPasSeries", width: 420, allowBlank: false
            },
            {
                xtype: 'textfield', fieldLabel: txtNumber, name: "DirContractorPasNumber", width: 420, allowBlank: false
            },
            {
                xtype: 'textfield', fieldLabel: txtPinCode, name: "DirContractorPasPinCode", width: 420, allowBlank: false
            },
            {
                xtype: 'textfield', fieldLabel: txtIssued, name: "DirContractorPasIssued", width: 420, allowBlank: false
            },
            {
                xtype: 'datefield', format: "d.m.y", maxValue: new Date(), fieldLabel: txtDate, name: 'DirContractorPasDate', allowBlank: false
            }
        ]
     });

Ну и сам Ext.tab.Panel, в него и будет добавляться PanelPassport
var DirContractorTabPanel = new Ext.create("Ext.tab.Panel", {
        region: "center",
        items: [PanelGeneral, PanelGridBankAccount, PanelPassport],
        bodyStyle: 'background-color: transparent !important'
    });


Есть комбоБокс.
При выборе срабатывает событие:
listeners: {
  select: {
    fn: function (combo, value) {
      if (combo.getValue() == 1) {
        DirContractorTabPanel.remove(PanelPassport);
      }
      else {
        DirContractorTabPanel.add(PanelPassport);
      }
...


Ну так в чём ошибка.
Закладку добавили - всё работает !!!
Поменяли тип контрагента - закладка удалилась - работает !!!
И, опять, поменяли тип контрагента - закладка НЕ добавилась или добавилась но без текстовых полей (с гюками) !!!

Может кто-то и свежим взглядом глянет на мою писанину ... и найдёт ошибочку )))
Ответить с цитированием
  #2 (permalink)  
Старый 28.07.2012, 12:44
Профессор
Отправить личное сообщение для potkin Посмотреть профиль Найти все сообщения от potkin
 
Регистрация: 23.08.2008
Сообщений: 162

Решил задачку так:
function fnPanelPassportAdd() {
        var PanelPassport = new Ext.FormPanel({
            title: txtPassport,
            id: "PanelPassport",
            frame: true,
            monitorValid: true,
            defaultType: 'textfield',
            items: [
                {
                    xtype: 'textfield', fieldLabel: txtSeries, name: "DirContractorPasSeries", width: 420, allowBlank: false
                },
                {
                    xtype: 'textfield', fieldLabel: txtNumber, name: "DirContractorPasNumber", width: 420, allowBlank: false
                },
                {
                    xtype: 'textfield', fieldLabel: txtPinCode, name: "DirContractorPasPinCode", width: 420, allowBlank: false
                },
                {
                    xtype: 'textfield', fieldLabel: txtIssued, name: "DirContractorPasIssued", width: 420, allowBlank: false
                },
                {
                    xtype: 'datefield', format: "d.m.y", maxValue: new Date(), fieldLabel: txtDate, name: 'DirContractorPasDate', allowBlank: false
                }
            ]
        });
        DirContractorTabPanel.add(PanelPassport);
    }
    function fnPanelPassportRemove() {
        var tab = Ext.getCmp("PanelPassport"); DirContractorTabPanel.remove(tab, true);
    }
Ответить с цитированием
  #3 (permalink)  
Старый 29.07.2012, 16:47
Профессор
Отправить личное сообщение для potkin Посмотреть профиль Найти все сообщения от potkin
 
Регистрация: 23.08.2008
Сообщений: 162

Забыл показать кусок кода:
listeners: {
  select: {
    fn: function (combo, value) {
      if (combo.getValue() == 1) {
        fnPanelPassportRemove();
      }
      else {
        fnPanelPassportAdd();
      }
...
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамическое удаление строк таблицы Tankist Events/DOM/Window 16 03.07.2013 16:42
Добавление и удаление полей в форму anoth3r Events/DOM/Window 1 11.09.2009 15:10