ExtJs: какой макет выбрать для сложной формы со многими полями - PullRequest
3 голосов
/ 25 августа 2011

Мне нужно реализовать большую сложную форму в extjs. Эта форма содержит около 20 строк с 5-6 полями в каждой строке. В этих строках есть текстовые поля, комбинации и просто отображаемые поля.

Я реализовал это с помощью макета формы для родительской панели. И с панелями макета «hbox» для каждой линии. Чтобы отобразить метки полей, мне нужно снова обернуть каждое поле в панель с макетом формы. Это даже звучит страшно, не могли бы вы представить себе этот беспорядок? Я чувствую, что делаю это неправильно.

Нужен совет, как это сделать правильно!

Обновлено: пожалуйста, проверьте пример макета, который я пытаюсь получить.

enter image description here

Ответы [ 2 ]

3 голосов
/ 08 июня 2012

Я использую layout: 'column' совсем немного.Затем вы можете указать каждому полю, сколько из columnWidth каждого должно иметь.Если ширина превышает 1, поля переносятся на следующую строку.

Для вашего снимка экрана все они имеют ширину столбца в треть, так что вы можете сделать что-то вроде этого:

  Ext.create('Ext.panel.Panel', {
    layout: 'column',
    defaults: {columnWidth: 0.3},
    items: [{
      xtype: 'textfield'
    },{
       ...
    }]
  });
2 голосов
/ 25 августа 2011

Вместо переноса каждой строки в panel вы можете использовать встроенный виджет FieldContainer (extjs4) или Ext.form.CompositeField виджет (extjs3).

...