Gridview TbPager Yii Yiibooster
我正在使用YiBooster、ExtendedGridView和TbPager。过滤后,结果不会显示在页面上。例如,我总共有5个结果,前2个结果在第1页,其他3个在网格的第二页 谢谢 编辑: 型号:Gridview TbPager Yii Yiibooster,gridview,yii,pager,Gridview,Yii,Pager,我正在使用YiBooster、ExtendedGridView和TbPager。过滤后,结果不会显示在页面上。例如,我总共有5个结果,前2个结果在第1页,其他3个在网格的第二页 谢谢 编辑: 型号: public function search() { $criteria = new CDbCriteria; $criteria->together = true; $criteria->with = array('training','instructor'
public function search() {
$criteria = new CDbCriteria;
$criteria->together = true;
$criteria->with = array('training','instructor','room','contactdetails','status');
$criteria->compare('id', $this->id);
$criteria->compare('trainingid', $this->trainingid);
$criteria->compare('categoryid',$this->categoryid);
$criteria->compare('roomid', $this->roomid);
$criteria->compare('instructorid', $this->instructorid);
$criteria->compare('statusid', $this->statusid);
$criteria->compare('termin', $this->termin);
$criteria->compare('duration', $this->duration);
$criteria->compare('maxparticipants', $this->maxparticipants);
$criteria->compare('comment', $this->comment);
$criteria->compare('contactdetailid', $this->instructorid);
if (!empty($this->from_date) && empty($this->to_date)) {
$criteria->condition = "termin >= '$this->from_date'";
} elseif (!empty($this->to_date) && empty($this->from_date)) {
$criteria->condition = "termin <= '$this->to_date'";
} elseif (!empty($this->to_date) && !empty($this->from_date)) {
$criteria->condition = "termin >= '$this->from_date' and termin<='$this->to_date'";
}
return new CActiveDataProvider($this, array(
'criteria' => $criteria,
'sort'=>array(
'defaultOrder'=>array(
'termin ASC',
)
),
'pagination' => array(
'pageSize' => 15),
));
}
控制器:
public function actionIndex() {
$this->layout = '//layouts/column1';
unset(Yii::app()->request->cookies['from_date']);
unset(Yii::app()->request->cookies['to_date']);
$model = new Seminar('search');
$model->unsetAttributes();
if(!empty($_POST))
{
Yii::app()->request->cookies['from_date'] = new CHttpCookie('from_date', $_POST['from_date']); // define cookie for from_date
Yii::app()->request->cookies['to_date'] = new CHttpCookie('to_date', $_POST['to_date']);
$model->from_date = $_POST['from_date'];
$model->to_date = $_POST['to_date'];
}
if(isset($_GET['Seminar'])){
$model->attributes=$_GET['Seminar'];
}
$this->render('index', array(
'model' => $model,
));
}
在设置dataProvider的位置显示您的代码这是我的代码,dataProvider将在模型的search()函数中返回。这是我的第一个yii项目,我也在努力满足筛选相关表列的条件。另外,我添加的扩展时间范围过滤器不适用于其他过滤器。我只能过滤daterange或“normal”列。u表示过滤后的结果不会显示在页面上。你的意思是说过滤器正在工作,但在不同的页面上显示结果?是的,这是我的问题,结果在不同的页面上。
public function actionIndex() {
$this->layout = '//layouts/column1';
unset(Yii::app()->request->cookies['from_date']);
unset(Yii::app()->request->cookies['to_date']);
$model = new Seminar('search');
$model->unsetAttributes();
if(!empty($_POST))
{
Yii::app()->request->cookies['from_date'] = new CHttpCookie('from_date', $_POST['from_date']); // define cookie for from_date
Yii::app()->request->cookies['to_date'] = new CHttpCookie('to_date', $_POST['to_date']);
$model->from_date = $_POST['from_date'];
$model->to_date = $_POST['to_date'];
}
if(isset($_GET['Seminar'])){
$model->attributes=$_GET['Seminar'];
}
$this->render('index', array(
'model' => $model,
));
}