首先,我们在表中有更多的记录,因此我们希望在页面中添加分页,代码如下所示
public function actionCompany()
{
$model = new CompanyProfile();
$criteria1 = new CDbCriteria();
$criteria1->addCondition('cmpny_profile_id=-1');
$dataProvidernew= new CActiveDataProvider('CompanyProfile',array(
'criteria'=>$criteria1,'pagination'=>array('pageSize'=>10),
));
if(isset($_POST['CompanyProfile'])){
$criteria = new CDbCriteria();
$model->cmpny_profile_name = $_POST['CompanyProfile']['cmpny_profile_name'];
if(!empty($model->cmpny_profile_name))
{
$criteria->addSearchCondition('cmpny_profile_name', $model->cmpny_profile_name);
}
$dataProvidernew= new CActiveDataProvider('CompanyProfile',array(
'criteria'=>$criteria,'pagination'=>array('pageSize'=>10),
));
}
$this->render('company',array('model'=>$model,'dataProvider'=>$dataProvidernew));
}
现在,在加载页面时,将不会显示任何记录,并且我们在页面中有一个要提交的表单。因此,在提交表单时,代码会正确显示前10个记录。当我们单击分页的第二个链接时,将不会显示任何记录。
我的问题是,在点击分页的第二个链接时,表单是提交的,但是值$model->cmpny_profile_name
为空,所以代码要显示10条记录,而不是显示单条记录,这是为什么呢?请告知原因。提前感谢。
1条答案
按热度按时间368yc8dk1#
首先,Cactivedataprovider与分页不加载页面,分页与ajax工作.因此,如果你回显代码在if条件,你可以通过ajax检查没有数据将显示.因此,在点击第二个链接的分页,相同的页面与分页将加载与ajax和
cmpny_profile_id=-1
条件将被应用,没有表单已提交,所以没有数据将被显示.