带分页的 Cactivedataprovider

首先,这里表中有更多的记录,所以我们要在页面中添加分页,代码如下


    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 条记录但不显示单条记录,为什么?请告诉我们原因。提前致谢。


慕仙森
浏览 205回答 1
1回答

慕娘9325324

首先,带分页的 Cactivedataprovider 不加载页面,分页与 ajax 一起工作。所以如果你在 if 条件中回显代码,你可以通过 ajax 检查没有数据将显示。所以点击分页的第二个链接,分页将是同一页面加载 ajax 并应用cmpny_profile_id=-1条件,并且没有提交任何表单,因此不会显示任何数据。
打开App,查看更多内容
随时随地看视频慕课网APP