带分页的 Cactivedataprovider

Cactivedataprovider with pagination

首先,这里table记录较多,所以想在页面中添加分页,代码如下

    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));
    }

现在,在加载页面时,不会显示任何记录,我们在 page.So 提交表单时要提交一个表单,代码可以正常显示前 10 条记录。当我们点击分页的第二个 link 时,将不会显示任何记录。
我的问题是,在点击分页的第二个 link 时,表单正在提交,但值 $model->cmpny_profile_name 为空,因此代码必须显示 10 条记录而不显示单条记录,为什么?请提前告知我们reason.Thanks。

首先,带分页的 Cactivedataprovider 不加载页面,分页与 ajax.So 一起工作如果你在 if 条件下回显代码,你可以检查 ajax 没有数据 displayed.So单击分页的第二个 link 时,将加载具有分页的同一页面 ajax 并且将应用 cmpny_profile_id=-1 条件并且没有提交任何表单,因此不会显示任何数据。