Самый простой способ - просто создать Ext.Component и присвоить ему конфигурацию tpl .Затем вы можете использовать конфигурацию data для обновления данных в этом компоненте.
Вот пример.
Во-первых, создайте свой собственный компонент, который расширяет контейнер (потому что вывероятно, захочет прокрутить его, и прокрутить будут только контейнеры), а затем присвоить ему tpl .Этот tpl будет использовать XTemplate для циклического перебора данных, которые вы предоставляете, для динамического создания таблицы для вас.
Ext.define('TableComponent', {
extend: 'Ext.Container',
config: {
tpl: Ext.create('Ext.XTemplate',
'<tpl for=".">',
'<div>{title}</div>',
'<table>',
'<tpl for="rows">',
'<tr>',
'<tpl for="columns">',
'<td>{html}</td>',
'</tpl>',
'</tr>',
'</tpl>',
'</table>',
'</tpl>'
)
}
});
Теперь внутри вашего приложения вы можете использовать этот компонент и дать ему некоторые поддельные данные - например, так:
Ext.setup({
onReady: function() {
var table = Ext.create('TableComponent', {
data: [
{
title: 'Header 1',
rows: [
{
columns: [
{ html: 'column 1' },
{ html: 'column 2' },
{ html: 'column 3' }
]
},
{
columns: [
{ html: 'column 1' },
{ html: 'column 2' },
{ html: 'column 3' }
]
}
]
},
{
title: 'Header 2',
rows: [
{
columns: [
{ html: 'column 1' },
{ html: 'column 2' },
{ html: 'column 3' }
]
}
]
}
]
});
Ext.Viewport.add(table);
}
});