Hallo,
Ich habe mit Hilfe der Extension MultiModelForm eine Seite gemacht, in der alle Datensätze einer Tabelle zeilenweise angezeigt werden (tabellarische Eingabe). Da es viele Datensätze sind, sollten sie auf mehrere Seiten aufgeteilt werden, wie bei dem Widget CGridView.
Wie kann ich diese Pagination in das Formular einbauen?
Bin Yii Anfänger. Bitte um Nachsicht.
Das ist der Code im Controller:
public function actionTabularInput() {
Yii::import('ext.multimodelform.MultiModelForm');
$model = new Member();
$model->setisNewRecord(false);
$validatedMembers = array();
if(isset($_POST['Member']))
{
$model->attributes=$_POST['Member'];
MultiModelForm::save($model,$validatedMembers,$deleteMembers);
}
$this->render('tabularInput',array(
'model'=>$model,
'validatedMembers' => $validatedMembers,
));
}
Das ist meine _tabularInputForm.php, welche von tabularinput.php gerendert wird:
<div class="form wide">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'group-form',
'enableAjaxValidation'=>false,
)); ?>
<p class="note">Fields with <span class="required">*</span> are required.</p>
<?php
echo $form->errorSummary(array_merge(array($model),$validatedMembers));
$memberFormConfig = array(
'elements'=>array(
'firstname'=>array(
'type'=>'text',
'maxlength'=>40,
),
'lastname'=>array(
'type'=>'text',
'maxlength'=>40,
),
'groupid'=>array(
'type'=>'text',
'maxlength'=>5,
),
'membersince'=>array(
'type'=>'dropdownlist',
//it is important to add an empty item because of new records
'items'=>array(''=>'-',2009=>2009,2010=>2010,2011=>2011,),
),
));
$this->widget('ext.multimodelform.MultiModelForm',array(
'id' => 'id_member', //the unique widget id
'formConfig' => $memberFormConfig, //the form configuration array
'model' => $model, //instance of the form model
'tableView' => true,
//if submitted not empty from the controller,
//the form will be rendered with validation errors
'validatedItems' => $validatedMembers,
//array of member instances loaded from db
'data' => $model->findAll(array('order'=>'groupid ASC')),
// 'data'=> new CActiveDataProvider($model, array(
// 'pagination' => array('pageSize' => 5,),
// 'criteria'=>array('order'=>'groupid ASC',),
// )),
));
?>
<div class="row buttons">
<?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
</div>
<?php $this->endWidget(); ?>
</div>
Unten sieht man auskommentiert meinen vergeblichen Versuch mit der Pagination.
Danke im Voraus für jeden Tipp.
Ferdinand