ExtJs - установить фиксированную ширину в макете центра на панели - PullRequest
0 голосов
/ 11 марта 2010

Использование ExtJ.

Я пытаюсь спроектировать основную, которая разделена на три подпанели (список дерева, сетка и панель). Это работает так, что у вас есть древовидный список (на западе) с элементами, вы нажимаете на элемент, который заполняет сетку (в центре), затем вы нажимаете на элемент в сетке и генерируете панель (запад). *

Моя основная панель, содержащая три другие, была определена с макетом 'border'.

Теперь проблема, с которой я сталкиваюсь, состоит в том, что расположение центра (сетка) было определено в коде с фиксированной шириной, а западная панель - как автоматическая ширина. Но когда интерфейс генерируется, ширина сетки внезапно занимает все пространство интерфейса вместо западной панели.

Код выглядит так:

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'?

Спасибо за ваше время.

1 Ответ

3 голосов
/ 11 марта 2010

Центральная область не может, согласно документам , иметь фиксированную ширину (см. Первую точку маркера под заголовком Примечания ). Любая другая область (N, S, E или W) может определять его размер, и центральная область просто занимает все оставшееся пространство. Кстати, это довольно стандартный подход для этого стиля компоновки и на других платформах с графическим интерфейсом (или подумайте о любой графической IDE, которую вы использовали в качестве примера).

Не устанавливайте автоматическую ширину на восточной панели, задайте ей начальную ширину (в противном случае она не будет отображаться, что, вероятно, вы и видите).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...