html - 在面板上绘制 Html 表格?

标签 html extjs sencha-touch-2

如何生成常规 html <table>在 Sencha Touch 2 的面板上?

每一行的数据可能来自商店。它不像列表那样非常“移动”,但我希望在我的平板电脑应用程序上有一些详细信息面板包含如下几个部分:

header #1
<table>
 <tr><td>one</td>td>two</td></tr>
 <tr><td>foo</td>td>bar</td></tr>
</table>

header #2
<table>
 <tr><td>abc</td>td>xyz</td></tr>
 <tr><td>cat</td>td>dog</td></tr>
</table>

The basic Panel definition should look something like this:

Ext.define('Kitchensink.view.HtmlTable', {
    extend: 'Ext.tab.Panel',
    config: {
        activeItem: 1,
        tabBar: {
            docked: 'top',
            layout: {
                pack: 'center'
            }
        },
        items: [{
                title: 'Tab 1',
                items: [{
                    html: '<h2 class="section">Section #1</h2>'
                }, {
                    html: '&lt;table class="style1">'
                }],
            }, {
                title: 'Tab 2',
                items: [{
                    html: '<h2 class="section">Section #3</h2>'
                }, {
                    html: '&lt;table class="style1">'
                }],
            }
        }]
})

最佳答案

最简单的方法是简单地创建一个 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);
    }
});

关于html - 在面板上绘制 Html 表格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9401355/

相关文章:

html - 不同页面中的相同 H1 标签?

javascript - jquery .find/.closest/.next

javascript - 使用添加事件监听器创建滚动事件 - Javascript

javascript - 在 ExtJs 3.3 组合框中显示多个字段

cordova - 错误 'Camera Cancelled' - 带有 PhoneGap 的 App Sencha

html表格如何使所有列的高度相同

extjs - 在 Ext-js 中插入后在网格中保存记录

c# - Ajax 请求后 .NET 后端的奇怪响应

javascript - Sencha 触摸 : How to implement xForms with Sencha Touch?

javascript - Sencha 触摸 : How to center align two buttons in bottom docked toolbar?