yii 具有分页功能的CactiveDataProvider

mrzz3bfm  于 2022-11-09  发布在  其他
关注(0)|答案(1)|浏览(153)

首先,我们在表中有更多的记录,因此我们希望在页面中添加分页,代码如下所示

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条记录,而不是显示单条记录,这是为什么呢?请告知原因。提前感谢。

368yc8dk

368yc8dk1#

首先,Cactivedataprovider与分页不加载页面,分页与ajax工作.因此,如果你回显代码在if条件,你可以通过ajax检查没有数据将显示.因此,在点击第二个链接的分页,相同的页面与分页将加载与ajax和cmpny_profile_id=-1条件将被应用,没有表单已提交,所以没有数据将被显示.

相关问题