为布局中的元素添加内边距'在顶部添加空白空间
Adding padding to elements in layout 'fit' adds empty space on top
我想在ExtJs中创建一个带有标签和复选框的表状结构。通常,我会使用布局为"vbox"的面板来堆叠一系列布局为"hbox"的面板。这样我就得到了这样的结构:
vbox
|
'|/
John Doe [] [] [] [] <- hbox
Jane Doe [] [] [] [] <- hbox
记录是从数据源动态加载的。这意味着我不能使用"表"布局,这是不赞成的。
然而,'vbox'不能很好地处理溢出。它只是剪辑它,虽然我想要滚动条。所以我选择布局'fit',它目前扩展'fit'面板,因此它容纳所有的记录。这和滚动条一样好,如果我指定了高度,我可能会得到滚动条。
我想在元素周围填充,但当我添加它时,它会出错。第一个记录的大小急剧扩大。
页面的大小来自以下元素:
div class="x-panel-body x-panel-body-noheader x-box-layout-ct" id="ext-gen82" style="width: 1621px; height: 2680px;"
我有一个10px的填充和135条记录,所以看起来高度是134倍的填充在两个方向。
我试图保留'vbox'面板并将其包裹在'fit'面板中,但这仍然会产生空白并破坏布局。
我有一个类似的问题在应用程序的其他地方,我已经工作了很多天了。我将非常感谢任何帮助!
代码如下
var pnlRelations = new Ext.Panel({
autoScroll: true,
frame: true,
id: 'pnlRelations',
title: 'Servers',
renderTo: 'pnlServers',
layout: 'fit',
items: [
],
buttons: [
{ text: 'Opslaan', handler: submit }
]
});
var storeServerMaintenance = new Ext.data.Store({
id: 'storeServerMaintenance',
autoLoad: true,
proxy: new Ext.data.HttpProxy({ url: '<%= Url.Action("ListMaintenanceServer", "Maintenance") %>' }),
reader: new Ext.data.JsonReader({
// totalProperty: 'records',
idProperty: 'Id',
root: 'rows'
},
<%= ServerMaintenanceListItem.ToColumnModel() %>
),
/*remoteSort: true*/
listeners: {
load: function (store, records, ops) {
nrOfRecords = records.length;
for (var i = 0; i < records.length; i++) {
var rec = records[i];
var serverId = rec.get('Id') == null ? null : rec.get('Id');
var relationId = rec.get('RelationId') == null ? null : rec.get('RelationId');
var q1 = rec.get('Q1') != null && rec.get('Q1');
var q2 = rec.get('Q2') != null && rec.get('Q2');
var q3 = rec.get('Q3') != null && rec.get('Q3');
var q4 = rec.get('Q4') != null && rec.get('Q4');
pnlRelations.add(new Ext.Panel({
layout: 'hbox',
// defaults: { margins: 10 },
style:{padding:'10px'},
items: [
new Ext.form.Label({ html: rec.get('RelationName'), width: labelWidth }),
new Ext.form.Label({ html: rec.get('Name'), width: labelWidth }),
new Ext.form.Label({ id: 'idx_' + i, html: '' + rec.get('Index'), width: boxWidth }),
new Ext.form.Checkbox({ id: 'cbQ1_' + i, width: boxWidth, checked: q1 }),
new Ext.form.Checkbox({ id: 'cbQ2_' + i, width: boxWidth, checked: q2 }),
new Ext.form.Checkbox({ id: 'cbQ3_' + i, width: boxWidth, checked: q3 }),
new Ext.form.Checkbox({ id: 'cbQ4_' + i, width: boxWidth, checked: q4 }),
new Ext.form.Hidden({ id: 'hfServer_' + i, value: serverId }),
new Ext.form.Hidden({ id: 'hfRelation_' + i, value: relationId })
]
}));
}
// debugger;
pnlRelations.doLayout();
}
}
});
try
layout: {
type: 'hbox',
align: 'stretch'
}
并添加
flex: 1
放入你的"items"
我已经修好了!具有讽刺意味的是,当我尽可能地将页面还原为基本内容时,这种情况就发生了。我删除了布局:"fit",并没有任何布局。然后我添加了一个填充到hbox面板。
var pnlRelations = new Ext.Panel({
autoScroll: true,
frame: true,
id: 'pnlRelations',
title: 'Servers',
renderTo: 'pnlServers',
// layout: 'fit',
items: [
],
buttons: [
{ text: 'Opslaan', handler: submit }
]
});
var storeServerMaintenance = new Ext.data.Store({
id: 'storeServerMaintenance',
autoLoad: true,
proxy: new Ext.data.HttpProxy({ url: '<%= Url.Action("ListMaintenanceServer", "Relatie") %>' }),
reader: new Ext.data.JsonReader({
// totalProperty: 'records',
idProperty: 'Id',
root: 'rows'
},
<%= ServerMaintenanceListItem.ToColumnModel() %>
),
/*remoteSort: true*/
listeners: {
load: function (store, records, ops) {
nrOfRecords = records.length;
for (var i = 0; i < records.length; i++) {
var rec = records[i];
var serverMaintenanceId = rec.get('Id') == null ? null : rec.get('Id');
var relationServerId = rec.get('RelationServerId');
var relationId = rec.get('RelationId') == null ? null : rec.get('RelationId');
var q1 = rec.get('Q1') != null && rec.get('Q1');
var q2 = rec.get('Q2') != null && rec.get('Q2');
var q3 = rec.get('Q3') != null && rec.get('Q3');
var q4 = rec.get('Q4') != null && rec.get('Q4');
pnlRelations.add(new Ext.Panel({
layout: { type: 'hbox' },
padding: 4,
items: [
new Ext.form.Label({ html: rec.get('RelationName'), width: labelWidth }),
new Ext.form.Label({ html: rec.get('Name'), width: labelWidth }),
new Ext.form.Label({ html: '' + rec.get('Index'), width: boxWidth }),
new Ext.form.Checkbox({ id: 'cbQ1_' + i, width: boxWidth, checked: q1 }),
new Ext.form.Checkbox({ id: 'cbQ2_' + i, width: boxWidth, checked: q2 }),
new Ext.form.Checkbox({ id: 'cbQ3_' + i, width: boxWidth, checked: q3 }),
new Ext.form.Checkbox({ id: 'cbQ4_' + i, width: boxWidth, checked: q4 }),
new Ext.form.Hidden({ id: 'idx_' + i, value: rec.get('Index') }),
new Ext.form.Hidden({ id: 'hfRelationServer_' + i, value: relationServerId }),
new Ext.form.Hidden({ id: 'hfServerMaintenanceId_' + i, value: serverMaintenanceId }),
new Ext.form.Hidden({ id: 'hfRelation_' + i, value: relationId })
]
}));
}
// debugger;
pnlRelations.doLayout();
}
}
相关文章:
- 如何在引导程序元素的顶部添加掩码
- 如何在已经有图标的滚动到顶部按钮中添加文本
- foreach对象循环添加到堆栈顶部
- 如何将元标记添加到最顶部的iFrame
- d3弧形图-添加顶部半圆
- 当在堆栈底部添加ImageView时,我想删除RelativeLayout中的顶部ImageView,但它正在删除整个布
- 如何使用DWR addRows函数在顶部添加行
- 在JSON顶部添加值
- 如何在volusion网站中添加滚动到顶部的浮动按钮
- 通过在顶部和左侧添加空间来调整画布大小.
- 仅在顶部添加了 1 行代码
- 当部分到达页面顶部时动态添加类
- 锚导航与坚持到顶部菜单..需要向锚点添加动态偏移量
- 当元素到达视口顶部时添加类
- 下划线.js,从一个对象中获取两个项目并添加到顶部
- 在表格顶部添加新行
- 向 JSON 对象的顶部添加内容
- 使用 JavaScript 将项目添加到列表顶部
- 为什么数据表在我的表顶部添加行
- Javascript -添加顶部固定条,并将所有其他元素向下推