【问题标题】:RenderPartial CActiveDataProvider pagination ajax not working yiiRenderPartial CActiveDataProvider 分页 ajax 不工作 yii
【发布时间】:2014-11-12 18:58:46
【问题描述】:

我的控制器代码

public function actionRead() {
       $criteria=new CDbCriteria(array(                    
                                'order'=>'id desc',
                            ));
        $enP=new CActiveDataProvider('Readss', array(
                'criteria'=>$criteria,
                    'pagination'=>array(
                    'pageSize'=>1,
                ),
            ));
$this->renderPartial('_read', array('data'=>$enP));
}

它正确显示了gridview,

我的查看代码

$this->widget('zii.widgets.grid.CGridView', array(
                              'id'=>'dfsdfsdf',
                                'dataProvider' => $data,
                               'itemsCssClass' => 'sdfsdfdl',
                                  'ajaxUpdate' => false,
                                'template' => '{summary}{pager}{items}{summary}{pager}',

                                  'columns'=>array(
                                    array(
                                      'header'=>'#',
                                      'value'=>'++$row',
                                      'htmlOptions'=>array(
                                      'style'=>'width:50px;'
                                      )
                                  ),
                                    'name',
                                    array(
                                    'name'=>'Date',
                                    'header'=>'Date',

                                    'value'=>'Yii::app()->dateFormatter->format("d MMM y",strtotime($data["work_date"]))'
                                ),

                                 ),
                               ));

但是当我点击我的分页时,我的页面正在重新定位,我在这里犯了什么错误, 我想在不刷新页面的情况下加载点击分页数据。

【问题讨论】:

    标签: php ajax yii pagination


    【解决方案1】:

    希望这会起作用,你可以让第四个参数为真

    //This will disable jquery being loaded again (use this if you have jquery already loaded 
    //means you are calling this in ajax)
    //Yii::app()->clientScript->scriptMap['jquery.js'] = false;
    //Yii::app()->clientScript->scriptMap['jquery.min.js'] = false;
    $this->renderPartial('_read', array('data'=>$enP),false,true);
    

    【讨论】:

    • 你是在 ajax 中调用这个吗?
    • 使用上面的代码,注释两行只使用renderPartial
    • 查看页面源代码并检查是否加载了jquery,如果是则检查控制台中的错误。
    【解决方案2】:

    在您的CGridView 中,您通过以下行指示禁用AJAX

    'ajaxUpdate' => false,
    

    你必须把它改成TRUE:

    'ajaxUpdate' => true,
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多