【问题标题】:Pagination for a table in yiiyii中表格的分页
【发布时间】:2015-09-15 13:25:31
【问题描述】:

我正在使用 Yii 应用程序。在那如何对表格内容进行分页(不使用 cgridview)。

config/main.php

'params'=>array(
    'adminEmail'=>'webmaster@example.com',
    'listPerPage'=> 10,//default pagination size
),

在控制器中,

  public function actionOutbox() {
    $criteria = new CDbCriteria;
    $criteria->condition = 'from_userid = :id';
    $criteria->order = 'time DESC';
    $criteria->params = array (':id'=>Yii::app()->user->id);

    $item_count = Email::model()->count($criteria);
    $model      = Email::model()->findAll($criteria);

    $pages = new CPagination($item_count);
    $pages->setPageSize(Yii::app()->params['listPerPage']);
    $pages->applyLimit($criteria);

    $this->render('outbox', array(
        'model' => $model,
        'item_count'=>$item_count,
        'page_size'=>Yii::app()->params['listPerPage'],
        'items_count'=>$item_count,
        'pages'=>$pages,
    ));
}

在视图中,

 <table data-provides="rowlink" data-page-size="20" data-filter="#mailbox_search" class="table toggle-square default footable-loaded footable" id="mailbox_table">
                            <thead>
                                <tr>
                                    <th></th>
                                    <th data-hide="phone,tablet">To</th>
                                    <th>Subject</th>
                                    <th data-hide="phone" class="footable-last-column">Date</th>
                                </tr>
                            </thead>
                            <tbody>
                                <?php
                                foreach ($model as $item) {
                                    if ($item->email_status == 1)
                                        echo '<tr id="' . $item->emailid . '" class="unreaded rowlink" style="display: table-row;">';
                                    else
                                        echo '<tr id="' . $item->emailid . '" class="rowlink" style="display: table-row;">';
                                    echo '<td class="nolink footable-first-column">';
                                    echo '<span class="footable-toggle"></span>';

                                    echo '</span></td>';
                                    echo '<td>' . $item->touser->username . '</td>';
                                    echo '<td>' . $item->email_subject . '</td>';
                                    $originalDate = $item->time;
                                    $newDate = date("Y-M-d H:i:s", strtotime($originalDate));


                                    echo '<td class="footable-last-column">' . $newDate . '</td></tr>';
                                }
                                ?>
                            </tbody>
                        </table>
<?php
  $this->widget('CLinkPager', array(
        'currentPage' => $pages->getCurrentPage(),
        'itemCount' => $item_count,
        'pageSize'=> $page_size,
        'maxButtonCount' => 5,
        //'nextPageLabel' =>'My text >',
        'htmlOptions' => array('class'=>'pages'),
    ));
     ?>

通过使用此代码,当前页面大小不起作用。显示表中的完整值。我也将页面大小从 10 更改为 2,但无法正常工作。

我做错了什么?

请帮助我。提前致谢

【问题讨论】:

标签: php yii pagination


【解决方案1】:

你无限使用findAll,想让yii了解分页?

使用CGridView 小部件代替它并在DataProvider 中设置分页(不创建单独的分页对象:它不支持结果计数)。

请阅读this topic

谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 2013-07-18
    • 1970-01-01
    • 1970-01-01
    • 2019-11-06
    相关资源
    最近更新 更多