Atk4表格列

时间:2012-07-24 18:18:22

标签: atk4

我正在尝试使用表单中的列。

我有下一个代码,它产生Columns

代码是这样的:

$col=$this->add('Columns');
$left=$col->add($f->addField('text','observaciones'));
$right=$col->add($f->addField('line','cantidad_de_bocas'));

列的字段基于表单字段。我想在列中添加多个字段(例如左列的2个字段和右列的4个字段)。

我已经看到了一些关于此的例子,比如

$col=$page->add('Columns');
$left=$col->addColumn(2)->add('View_SlotMachine');
$right=$col->addColumn(2)->add('View_SlotMachine');
  • 为什么字段重复?
  • addColumn(2)方法的作用是什么?

非常感谢

1 个答案:

答案 0 :(得分:0)

如果您还没有使用atk 4.1进行开发,可以下载4.2并查看示例here。 4.2中有许多新功能可以利用,并且演示和示例正在更新以反映这些变化。

在4.2中,有一个样式的例子,有两个列,如

class StylingForm extends Form {
  function init(){
    parent::init();
    $f=$this;

    $f->addField('line','name')->validateNotNull()
        ->setFieldHint('Click "Register" to see error');
    $f->addField('line','email')
        ->validateNotNull()
        ->validateField('filter_var($this->get(), FILTER_VALIDATE_EMAIL)')

    .. .. ..

 }

 functoin init() {
   // Stacked class puts labels on top of fields
   $form=$page->add('StylingForm');
   $form->addClass('stacked atk-row');

   $form->template->trySet('fieldset','span6');
   $sep=$form->addSeparator('span6');
   $form->add('Order')->move($sep,'before','age')->now();

 }

在atk4.1中,表单是一个视图,因此它在atk4 / templates / shared / view / form.html中有一个模板,在atk4 / lib / View / form.php中有一些代码

在您从here提及的老虎机示例中,addColumns(2)用于将视图宽度设置为可用屏幕宽度的20%,但在示例中,每列将包含老虎机的视图。如果您希望在同一页面上使用表单,则可以使用相同的功能,但您想要的是两个列中的单个表单以及一个提交按钮。

如果您必须继续使用atk4.1,则需要查看form.html。罗马人可能会建议如何在该版本中创建两列形式。我可以看到在css中定义了一些类,比如atk-form-vertical-2col和atk-form-vertical-3col,并且有一个函数setFormClass来设置它们但是我看不出你要设置什么标签来放入字段右侧 - 默认情况下,一切都在左侧。