Yii2 GridView显示多个页面

时间:2017-07-10 09:24:20

标签: php yii2

我有一个52行和两列的GridView。

我想要的不是一个52行长的列表,而是有四个列表,一个列在另一个旁边,每个列有13行,所以像pageSize = 13的分页一样,但是所有页面都可以看到另一个。

有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:1)

可以使用具有不同页面值的不同dataProvider

$dataProvider0 = new ActiveDataProvider([
  ...
  'pagination' => [
    'pageSize' => 13,
    'page' = 0,
  ],
]);

$dataProvider1 = new ActiveDataProvider([
  ...
  'pagination' => [
    'pageSize' => 13,
    'page' = 1,
  ],
]);

$dataProvider2 = new ActiveDataProvider([
  ...
  'pagination' => [
    'pageSize' => 13,
    'page' = 2,
  ],
]);

$dataProvider3 = new ActiveDataProvider([
  ...
  'pagination' => [
    'pageSize' => 13,
    'page' = 3,
  ],
]);

将提供商分配给4个不同的gridview

答案 1 :(得分:0)

有几种可能的解决方案。

  1. 您可以使用GridView属性$beforeRow$afterRow将一个GridView可视地拆分为多个块。

  2. 您可以使用DataProvider的一个实例将其拆分为多个实例。例如,您可以使用ActiveDataProvider并使$provider->getModels()获取所有模型对象。然后创建四个ArrayDataProvider实例,并在四个GridView中使用它们。