HTML Form to ExtJS Form
我有一个 html 表单,其中的字段非常分散。该页面是使用 html 表 – rowspan 和 colspan 组合创建的。
我需要将此表单转换为 ExtJS 并在窗口中显示。
经过一些研究,我觉得表格布局可能是定位字段的最佳选择。但是我一直面临以下几个问题:
我将布局用作窗口的”适合”,并将布局用作表单的”表格”。
我也尝试过对表单使用”锚”布局,然后使用带有表格布局的字段集,但定位不起作用。
有人可以说明一下吗。以下是我正在使用的基本代码片段:
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
var form = Ext.create(‘Ext.form.Panel’, {
url:’voyage_berth_monitoring.php’, fieldDefaults: { labelAlign: ‘right’ }, layout:{ type:’table’, columns:3 }, defaults:{ anchor:’100%’ }, tbar:[ { xtype:’button’, text:’Clear’ }, { xtype:’button’, text:’Delete’ }, { xtype:’tbfill’ }, { xtype:’button’, text:’Save’ }, { xtype:’button’, text:’Exit’ } ], items: [
{ }, }, }, }, }
] var win = Ext.create(‘Ext.window.Window’, { win.show(); |
- 已经看过:http://dev.sencha.com/deploy/ext-4.0.0/examples/form/dynamic??.html 表格 3 会有所帮助。您也可以将顶部渲染到视口:Ext.create(‘Ext.Viewport’, { \tlayout: ‘fit’, \titems: [top], \trenderTo: Ext.getBody() \t});
- 感谢您的帮助 Xupypr。我试过了,但是这种结构也不允许像 html 的 table 标记那样具有灵活性,我们可以控制页面的每个部分。此外,使用大量容器在页面中进行所需的定位也使其有点复杂。这种灵活性是不是通过extjs的表格布局是不可能的?
基本上我的布局表也有同样的问题,找不到任何方法将我的显示字段跨越到 td 的长度,并且 2 列字段也有同样的问题。
我更喜欢的解决方案是扩展表格布局并赋予它灵活性
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
Ext.define(‘Extended.TableLayout’, {
alias:’layout.extendedTable’, extend: ‘Ext.layout.container.Table’, type: ‘extendedTable’, columns: 2, rightMargin: 20, tableAttrs:{ width: ‘100%’ }, tdAttrs:{ width:’50%’ }, itemCls:’x-table-cell’, renderItems: function(items) { var totalWidth = this.getLayoutTargetSize().width, for (i = 0; i < len; i++) { colNr = this.columns; |
使用 extendedTable 布局,我得到了想要的外观
- 扩展是优秀的 Nscob。谢谢分享。不过,我通过结合使用列和 hbox 布局来达到我的目的。但肯定会接触到您为未来的应用程序创建的内容。
另一种方法是将您的 HTML 表单数据序列化为 JSON 并将其加载到 EXT 存储中。一旦它在商店里,EXT 会很乐意用它做任何你想做的事情。
- 感谢 Diodeus,但这样做可能违反了将”视图”部分与应用程序的其余部分分开的规则。
来源:https://www.codenong.com/7121063/