Hallo, ich habe ein Problem mit der Pagination von CListView in meinem Anwendungsfall.
Erstmal zur Struktur:
Ich habe ein kleines Formular in meinem main layout. Dieses Formular lädt per ajax die Suchergebnisse, bzw. das CListView Widget mit den Suchergebnissen.
<?php echo CHtml::beginForm(); ?>
<?php echo CHtml::textField('searchKey'); ?>
<?php echo CHtml::hiddenField('isAjaxRequest', 'true'); ?>
<?php echo CHtml::ajaxSubmitButton('Suchen', CHtml::normalizeUrl(array('user/search')), array('update'=>'#searchResult')); ?>
<div id="searchResult"></div>
<?php echo CHtml::endForm(); ?>
Die dazugehörige action sieht wie folgt aus.
public function actionSearch() {
$searchKey = $_POST['searchKey'];
$criteria = new CDbCriteria;
$criteria -> together = true;
$criteria -> with = array('profile');
$criteria -> condition = 'firstname = :searchKey';
$criteria -> params = array(':searchKey' => $searchKey);
$models = User::model()->findAll($criteria);
$this->renderPartial('ajaxSearchResult', array('models'=>$models, 'searchKey'=>$searchKey), false, true);
}
Das View ‘ajaxSearchResult’ mit CListView
<div id="ajaxSearchResult">
<?php
$dataProvider = new CArrayDataProvider($models, array('pagination'=>array('pageSize'=>2)));
$this->widget('zii.widgets.CListView', array(
'dataProvider'=> $dataProvider,
'itemView'=>'/user/ajaxSearchResultItem',
)
);
?>
</div>
Die Suche funktioniert soweit und das CListView Widget wird geladen. Wenn ich jetzt auf Seite 2 der Suchergebnisse möchte, kommen keine Ergebnisse, obwohl es noch weitere Ergebnisse gibt. Damit die Suche funktioniert, muss das CListView den Wert aus dem Textfeld per POST mitschicken.
Gibt es eine Möglichkeit das mit CListView zu realisieren ?
Wenn nicht, gibt es einen anderen Weg ?
Danke schonmal für die Hilfe.