我有一个简单的搜索表单 (site/search.php) 将搜索字符串发送到控制器并显示搜索结果(如果有)。我正在使用 CGridView 来显示数据。 更新这是我的视图(site/search.php)文件:
<form name="quickSearchForm" action="<?php echo Yii::app()->createUrl("site/search"); ?>" method="POST">
<div data-role="fieldcontain">
<input type="search" name="searchText" id="searchText" value="<?php echo $searchText; ?>"/>
<input type="submit" name="submitBtn" id="submitBtn" value="search"/>
<a href="#">Advanced</a>
</div>
</form>
<?php
if (!empty(itemList)) {
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'task-grid',
'dataProvider'=>$itemList,
'pager'=>array(
'header' => '',
'firstPageLabel' => '<<',
'prevPageLabel' => '<',
'nextPageLabel' => '>',
'lastPageLabel' => '>>',
),
'template'=>'{pager}{items}{pager}',
'columns'=>array(
array(
'name' => 'name',
'value' => '$data->name',
),
array(
'name' => 'date',
'value' => 'date("d/m/Y",strtotime($data->date) )',
),
),
),);
} //end if
?>
在控制器中,我使用 $searchText 通过 CActiveDataProvider 获取数据,然后渲染回 search.php。
<?php
$this->render($view = "search", array(
'searchText' => $searchText,
'itemList' => $itemListBySearch,
'taskResult' => $tasks,
));
结束更新
我的问题是 $itemList 有很多项目,GridView 会分页。但是,我点击按钮页面[2],浏览器直接到r=site/search&page=2
并且itemList丢失了!
我可以使用 ajax 而不是直接到r=site/search&page=2
???