[英]yii pagination with searching not working
我正在用搜索项在列表页面中实现分页(yii1):当我搜索某项时,分页总计项5(我的意思是像1 2 3 4 5这样的链接)并且搜索很好。
当我单击分页链接的第二页时,项目总数增加到12(我的意思是链接,例如1 2 3 4 5 ... 10 11 12)。
我的查询与类似运算符正常工作。 我不知道它在哪里改变。
这是在我的控制器中
if((isset($_POST['searchtext'])) && (!empty($_POST['searchtext']))){
$sql ="select * from table1 where name LIKE '\'%'.$_POST['searchtext'].'%\'" ;
$sql_count = "select count(*) from table1 LIKE '\'%'.$_POST['searchtext'].'%\'" ;
$count=Yii::app()->db->createCommand($sql_count)->queryScalar();
}else{
$sql = "select * from table1";
$sql_count = "select * from table1";
$count=Yii::app()->db->createCommand($sql_count)->queryScalar();
}
$dataProvider=new CSqlDataProvider($sql, array(
'totalItemCount'=>$count,
'sort'=>array(
'attributes'=>array(
'id','userid','user_email',
),
),
'pagination'=>array(
'pageSize'=>9,
),
));
$this->render('listallview',array(
'dataProvider'=>$dataProvider,
));
我的看法
<ul class="list ">
<?php
$this->widget('bootstrap.widgets.TbListView', array(
'dataProvider'=>$dataProvider,
'itemView'=>'_view',
));
?>
</ul>
可能是什么问题呢?
如果要使用分页功能,则必须将totalItemCount属性配置为总行 数 (无分页)。
尝试在您的控制器中:
if((isset($_POST['searchtext'])) && (!empty($_POST['searchtext']))){
$sql ="select * from table1 where name LIKE '\'%'.$_POST['searchtext'].'%\'" ;
//$sql_count = "select count(*) from table1 LIKE '\'%'.$_POST['searchtext'].'%\'" ;
//$count=Yii::app()->db->createCommand($sql_count)->queryScalar();
}else{
$sql = "select * from table1";
//$sql_count = "select * from table1";
//$count=Yii::app()->db->createCommand($sql_count)->queryScalar();
}
$count=Yii::app()->db->createCommand('SELECT COUNT(*) FROM table1')->queryScalar();
$dataProvider=new CSqlDataProvider($sql, array(
'totalItemCount'=>$count,
'sort'=>array(
'attributes'=>array(
'id','userid','user_email',
),
),
'pagination'=>array(
'pageSize'=>9,
),
));
$this->render('listallview',array(
'dataProvider'=>$dataProvider,
));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.