Загружать содержимое элемента TabPanel динамически доб. js 5.1.3 - PullRequest
0 голосов
/ 23 апреля 2020

Я работаю над версией Js 5.1.3. Я хочу загрузить элементы табуляции из массива. Но проблема в том, что он загружается в браузере на неопределенное время и не показывает мою вкладку. Вот мой код ниже,

this.myPanel = new Ext.create('Ext.tab.Panel', {
        height: 500,
        activeTab: 0,
        items: [
            myEntities.forEach(function (item) {
                this.midPanel.add({
                    title: item.box.id,
                    html: "<iframe width ='100%' height='100%' src='/myPage.aspx?id='+ item.box.id +''><p>Your browser does not support iframes.</p></iframe>"
                })
            })
        ],
        renderTo: Ext.getBody()
    });

Код работает для элементов c. Например,

this.myPanel = new Ext.create('Ext.tab.Panel', {
        height: 500,
        activeTab: 0,
        items: [
            title: "X",
                    html: "<iframe width ='100%' height='100%' src='/myPage.aspx?id=123'><p>Your browser does not support iframes.</p></iframe>"
        ],
        renderTo: Ext.getBody()
    });

Мне просто интересно, где я делаю ошибку для загрузки элемента динамического c в TabPanel. Заранее спасибо, если кто-то может показать мне проблему или демонстрацию.

1 Ответ

0 голосов
/ 24 апреля 2020

Ну, это было немного сложно для меня, как для начинающего. Я решил это, загрузив элементы в другую панель и связав его с атрибутом элементов midPanel. Вот мое окончательное решение,

        var tabs = [];
    myEntities.forEach(function (item) {
        tabs.push(Ext.create('Ext.Panel', {
            title: "Box Id: " + item.box.id,
            html: '<iframe width="100%" height="100%" src="../myPage.aspx?id=' + item.box.id +'"><p>Your browser does not support iframes.</p></iframe>'
        }))
    });

    this.midPanel = new Ext.create('Ext.tab.Panel', {
        height: 500,
        activeTab: 0,
        items: tabs,
        renderTo: Ext.getBody()
    });
...