【问题标题】:CGridView Pagination not working. YiiCGridView 分页不起作用。易
【发布时间】:2015-07-02 04:52:40
【问题描述】:

我的视图中有一个表单,可以从下拉列表中选择列。 SqlDataProvider 用于从生成的 Query 中获取数据

我一直在尝试将 CGridView 与 SQLDataProvider 一起使用,它的工作有点好,但仍然有一些分页问题。我没有任何 keyField,所以我给它我的第一列,没有 keyField 它不起作用。

这是我的行动:

public function actionIndex()
{
    $tables = Yii::app()->db->schema->getTables();

    if(isset($_POST['yt0'])){ //if from submitted

        $query = $this->generateQuery();

        $count=Yii::app()->db->createCommand('SELECT COUNT(*) FROM ( ' . $query . ' ) as count')->queryScalar();

        $dataProvider = new CSqlDataProvider($query, array(
            'keyField' => $firstColumn,
            'totalItemCount'=> $count,
            'pagination'=> array(
                'pageSize'=>20,
            ),
        ));

        $columns = $this->getColumnNamesWithoutTable();

        $this->render('index',
            array(  'tables' => $tables,
                    'query' => $query,
                    'dataProvider' => $dataProvider,
                    'columns' => $columns
            )
        );

    }else{

        $this->render('index', array('tables' => $tables));
    }
}

这是视图中的小部件代码,根据我的阅读,分页应该自动工作,是因为我使用的是自定义查询而不是 Yii 模型吗?

$this->widget('zii.widgets.grid.CGridView', array(
            'dataProvider'=>$dataProvider,
            'enablePagination'=> true,
));

第一次显示数据,但下一步按钮不起作用。

【问题讨论】:

    标签: php mysql yii pagination


    【解决方案1】:

    我刚刚在 sqldataprovider 中添加了 totalitemcount,它对我有用,如果有人仍然想知道,

     $dataProvider=new CSqlDataProvider($sql, array(
                    'pagination'=>array(
                        'pageSize'=>10,
                    ),
                    'totalItemCount'=>'100000'
     ));
    

    【讨论】:

      【解决方案2】:

      'keyField' => $firstColumn

      $firstColumn 的值是多少。

      键域必须是由 CSqlDataProvider 引退的数组的索引

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-12-14
        • 2013-08-20
        • 2011-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-27
        相关资源
        最近更新 更多