使用ExtJs。
我正在尝试设计一个主要部分,它分为三个子面板(树状列表,网格和面板)。它的工作方式是你有一个带有元素的树列表(西),你点击一个填充网格(中心)的元素,然后你点击网格中的一个元素,然后生成面板(西)。
我的主面板包含其他三个面板,已经定义了布局“边框”。
现在我遇到的问题是中心布局(网格)已在代码中定义,具有固定宽度,西面板作为自动宽度。但是当界面生成时,网格宽度会突然占用界面中的所有空间而不是西面板。
代码如下:
var exploits_details_panel = new Ext.Panel({
region: 'east',
autoWidth: true,
autoScroll: true,
html: 'test'
});
var exploit_commands = new Ext.grid.GridPanel({
store: new Ext.data.Store({
autoDestroy: true
}),
sortable: true,
autoWidth: false,
region: 'center',
stripeRows: true,
autoScroll: true,
border: true,
width: 225,
columns: [
{header: 'command', width: 150, sortable: true},
{header: 'date', width: 70, sortable: true}
]
});
var exploits_tree = new Ext.tree.TreePanel({
border: true,
region: 'west',
width: 200,
useArrows: true,
autoScroll: true,
animate: true,
containerScroll: true,
rootVisible: false,
root: {nodeType: 'async'},
dataUrl: '/ui/modules/select/exploits/tree',
listeners: {
'click': function(node) {
}
}
});
var exploits = new Ext.Panel({
id: 'beef-configuration-exploits',
title: 'Auto-Exploit',
region: 'center',
split: true,
autoScroll: true,
layout: {
type: 'border',
padding: '5',
align: 'left'
},
items: [exploits_tree, exploit_commands, exploits_details_panel]
});
这里'var exploits'是我的主面板,包含其他三个子面板。
'exploits_tree'是包含一些元素的树列表。当您单击其中一个元素时,将填充网格'exploit_commands',当您单击其中一个填充的元素时,将生成'exploits_details_panel'面板。
如何在'exploit_commands'上设置固定宽度?
感谢您的时间。
答案 0 :(得分:3)
根据docs,中心区域不能有固定的宽度(请参阅注释标题下的第一个项目符号点)。任何其他区域(N,S,E或W)可以定义其大小,并且中心区域仅占用剩余的任何空间。顺便说一下,这也是其他GUI平台中这种布局风格的标准方法(或者只考虑你用过的任何图形IDE)。
不要在东面板上设置自动宽度,给它一个定义的起始宽度(否则它不会显示,这可能就是你所看到的)。