php - CGridView 分页不起作用。伊伊

标签 php mysql yii pagination

我的 View 中有一个表单,它从下拉列表中选择列。 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));
    }
}

这是 View 中的小部件代码,根据我所读到的内容,分页应该自动工作,是因为我使用的是自定义查询而不是 Yii Models 吗?

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

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

最佳答案

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

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

关于php - CGridView 分页不起作用。伊伊,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31175830/

相关文章:

php - 如何使用 javascript 根据现有文件动态添加 jquery 文件?

php 将 time() 即时转换为 sql 的日期格式

PHP zip 下载错误

mysql - 如何使用Group By和self-join返回min, max, open, close daily price result set?

mysql - 引用两个不同表的列

mysql - yii 给常规查询带来麻烦

php - Yii2 将列类型转换为整数

php - 如何将 MySQL 数据库自动复制到同一服务器上的另一个 MySQL 数据库?

mysql - 如何查找表中的唯一记录。不同的显示重复的一条记录。我想要完全唯一的,即不重复的记录

yii - 如何为 Yii 模块中的所有 Controller 设置布局?