簡體   English   中英

分頁在Yii Framework中不起作用

[英]Pagination not working in Yii Framework

我正在使用Yii Rights模塊進行ACL,我希望在Permissions頁面中進行分頁。

以下是我的代碼:

AuthItemController.php

public function actionPermissions() {
        $dataProvider = new RPermissionDataProvider('permissions', array(
                    'pagination' => array(
                        'pageSize' => 10,
                        //'class' => 'CPagination', //showing an error
                        'itemCount' => 32
                        )));

        // Get the roles from the data provider
        $roles = $dataProvider->getRoles();
        $roleColumnWidth = $roles !== array() ? 75 / count($roles) : 0;

        // Initialize the columns
        $columns = array(
            array(
                'name' => 'description',
                'header' => Rights::t('core', 'Item'),
                'type' => 'raw',
                'htmlOptions' => array(
                    'class' => 'permission-column',
                    'style' => 'width:25%',
                ),
            ),
        );

        // Add a column for each role
        foreach ($roles as $roleName => $role) {
            $columns[] = array(
                'name' => strtolower($roleName),
                'header' => $role->getNameText(),
                'type' => 'raw',
                'htmlOptions' => array(
                    'class' => 'role-column',
                    'style' => 'width:' . $roleColumnWidth . '%',
                ),
            );
        }

        $view = 'permissions';
        $params = array(
            'dataProvider' => $dataProvider,
            'columns' => $columns,
        );

        // Render the view
        isset($_POST['ajax']) === true ? $this->renderPartial($view, $params) : $this->render($view, $params);
    }

並在View

$this->widget('bootstrap.widgets.TbGridView', array(
        'type' => 'bordered',
        'dataProvider' => $dataProvider,
        'template' => '{pager}{items}',
        'emptyText' => Rights::t('core', 'No authorization items found.'),
        'htmlOptions' => array('class' => 'grid-view permission-table'),
        'columns' => $columns,
        'pager' => array(
            'header' => '',
            'hiddenPageCssClass' => 'disabled',
            'maxButtonCount' => 3,
            'cssFile' => false,
            'class' => 'CLinkPager',
            'prevPageLabel' => '<i class="icon-chevron-left"></i>',
            'nextPageLabel' => '<i class="icon-chevron-right"></i>',
            'firstPageLabel' => 'First',
            'lastPageLabel' => 'Last',
        ),
        'pagerCssClass' => 'pagination',
    ));

我已經使用相同的方法為其他頁面實現了分頁,但在權限模塊中它不起作用。 它沒有顯示任何錯誤,但也沒有顯示分頁鏈接/按鈕。

我在一個頁面中實現多個網格時遇到了同樣的問題,對我有用的解決方案是,我檢查了網格ajax調用的url,在更新之前我操縱了url,並在ajax請求之前設置了正確的url和參數!

喜歡:

$this->widget('zii.grid.GridView', array(
  'id' => 'group-grid-customers-list-not-scheduled',
  'dataProvider' => $notScheduledVisitedDataProvider ,
  'beforeAjaxUpdate' => '
        function(id , options)
        { 
            options.url = options.url.split("&test=test&");
            options.url = options.url[0] + "&test=test&" + $(".search-form form").serialize(); 
        }',
  'columns' => array(
      'col1',
      'col2',
      'col3',
  ),
));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM