Yii CGridview Pagination renderpartial

时间:2014-05-28 23:24:00

标签: php jquery yii pagination cgridview

我目前正在视图中渲染3个CGridviews,全部使用“renderPartial”和相同的php文件。这种方法很好,除了使用分页时,用户选择另一页结果,它会将所有CGridviews移动到该页面(如果可以的话)。我不确定为什么会发生这种情况或如何解决它。

我尝试了这种方法post on Yii forms,它确实修复了CGridViews的分页,但是打破了我的ajax函数和css样式。请参阅下面的图像。

这是CGridView模板

<div class="row btn-row">
<h2 class="admin-h1"><?php echo $title; ?></h2>
<div class="btn-block-div">
    <button class="btn addOrgBtn" id="<?php echo $title; ?>">Add</button>
</div>
</div>
<?php 
$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>$title .'-table',
    'dataProvider'=>$dataProvider,
    'selectableRows'=>1,
    'hideHeader'=>true,
    'selectionChanged'=>'viewRoles',
    'columns'=>array(
        array(
            'header'=>'Name',
            'name'=>'Organization',
        ),
        'Roles',
    ),
));
?>

以下是我视图中的“RenderPartial”语句:

<div class="col-md-12 col-sm-12 col-xs-12" style="margin-bottom:60px;">
<div class="col-md-4 col-sm-4 col-xs-12" id="School-grid">
    <?php echo $this->renderPartial('_roleTable', array('title'=>'School', 'model'=>$model, 'dataProvider'=>$schoolItems)); ?>
</div>
<div class="col-md-4 col-sm-4 col-xs-12" id="Classroom-grid">
    <?php echo $this->renderPartial('_roleTable', array('title'=>'Classroom', 'model'=>$model, 'dataProvider'=>$classroomItems)); ?>
</div>
<div class="col-md-4 col-sm-4 col-xs-12" id="Shared-grid">
    <?php echo $this->renderPartial('_roleTable', array('title'=>'Shared', 'model'=>$model, 'dataProvider'=>$sharedItems)); ?>
</div>
</div>

这是目前正在发生的事情: enter image description here

当我在我的“RenderPartial”语句中添加“false,true”时会发生这种情况,例如Yii的答案: enter image description here

在此先感谢您的帮助,我真的迷失在这个问题上。

更新 作为参考,我也在Yii表格上提出了这个问题here,因为我发现SO有更好的响应时间,但是Yii表单有集中的社区。

2 个答案:

答案 0 :(得分:3)

问题是各种各样的问题。

首先,我需要设置&#34; updateSelector&#34; CGridView的属性到每个表的自定义页面选择器。

其次,我需要设置&#34; pageVar&#34;在我的&#34; dataProvider&#34;匹配选择器。

这是一个静态的例子,使其尽可能清晰。

的DataProvider:

new CArrayDataProvider($data, array(
        'sort'=>array(
            'attributes'=>array(
                'Organization',
                'Roles',
            ),
        ),
        'pagination'=>array(
            'pageSize'=>10,
            'pageVar'=>'custom-page-selector', //page selector
        ),
    ));

CGridView:

<?php 
$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>$title .'-grid',
    'dataProvider'=>$dataProvider,
    'selectableRows'=>1,
    'updateSelector'=>'custom-page-selector', //update selector
    'columns'=>array(
        array(
            'header'=>'Name',
            'name'=>'Organization',
        ),
        'Roles',
    ),
));
?>

希望这可以帮助将来的某个人!

答案 1 :(得分:0)

如果他们都对其中一个分页点击做出反应,可能是因为您使用相同的名称(/ id)命名了所有网格视图,并且这是ID冲突的问题,

全部