我正在使用带有SqlDataProvider的Yii2和Kartik GridView,并尝试让toggleData按钮工作。我期望的是,当点击它时会显示所有记录,但它只显示第一页并删除分页按钮。 我还没有看到任何使用SqlDataProvider的例子,这就是为什么我有点担心它不起作用。
这是我对控制器的简化部分:
$query = Entryrecord::find();
$count = Yii::$app->db->createCommand('SELECT COUNT(*) FROM (' . $query->createCommand()->getRawSql() . ') as count_alias')->queryScalar();
$dataProvider = new SqlDataProvider([
'sql' => $query->createCommand()->getRawSql(),
'totalCount' => $count,
'pagination' => [
'pageSize' => 10,
],
]);
return $dataProvider;
在视图中
$gridColumns = [
'id',
'created_date'
];
echo GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => $gridColumns,
'panel' => [
'type' => GridView::TYPE_PRIMARY,
'heading' => 'Records',
],
'pjax' => true,
'pjaxSettings' => ['options' => ['id' => 'kv-pjax-container']],
// your toolbar can include the additional full export menu
'toolbar' => [
'{toggleData}',
'{export}',
],
]);
出于某种原因,它不会显示完整的结果列表。
任何帮助都会很棒。 感谢。