2017-08-07 83 views
1

我想在Yii 2中更改GridView的显示格式。例如,我希望有一些行和列的数据,如Internet市场显示产品。 例如,在每一行中我想要有4-5个产品.. 这是默认使用GridView的一个示例。如何在yii2中更改Gridview格式?

<?= GridView::widget([ 
     'dataProvider' => $dataProvider, 
     'filterModel' => $searchModel, 
     'columns' => [ 
      ['class' => 'yii\grid\SerialColumn'], 

      'id', 
      'sim_num', 
      'network', 
      'twog_network', 
      'threeg_network', 
      // 'fourg_network', 
      // 'bady_struct', 
      // 'process', 
      // 'other:ntext', 
      // 'os', 
      // 'gesture', 
      // 'items', 
      // 'speaker', 

      ['class' => 'yii\grid\ActionColumn'], 
     ], 
    ]); ?> 

如何像HTML表格的格式显示从数据库中的数据,并确定在它分页行数和列数?

谢谢;)

回答

2

GridView是用于以表格格式显示数据。你在找什么是ListView

这与GridView一样支持分页,您也使用数据提供程序。通过ListView,您可以将自己的“每个元素视图”设置为任何你喜欢的。

请参阅Guide中的文章。

+0

是否可以在列表视图中添加过滤器进行搜索? – areff

+0

您正在使用数据提供程序进行筛选,所以是的,就像在GridView中一样。不同之处在于过滤器表单不像GridView那样与数据表相结合,您必须将其添加到ListView旁边。 – Bizley

+0

谢谢:)让我测试它 – areff

0

请参阅下面的示例。我希望它能帮助你。

<?= GridView::widget([ 
    'dataProvider' => $dataProvider, 
    'filterModel' => $searchModel, 
    'layout'=>"{items}\n{summary}\n{pager}", 
    'options' => ['style' => 'overflow-x:scroll;width:100%'], 
    'columns' => [ 
     [ 
      'class' => 'yii\grid\CheckboxColumn', 
      'checkboxOptions' => function($model, $key, $index, $column) { 
       return ['value' => $model->who_we_are_id]; 
      } 
     ], 

     [ 
      'attribute' => 'language_id', 
      'label' => 'Language', 
      'value' => 'languages.name', 
     ], 
     // 'description', 

     [ 
      'attribute'=>'image', 
      'label' => 'Image', 
      'content'=>function($data){ 
       $web_path = Yii::getAlias('@webroot'); 
       if(file_exists($web_path."/images/who_we_are/".$data->image) && !empty($data->image)){ 

        $url = \Yii::$app->request->BaseUrl.'/images/who_we_are/'.$data->image; 
        return Html::img($url,["width"=>"50px","height"=>"50px"]); 
       } 
      } 
     ], 
     'url', 
     [ 
      'attribute'=>'created_on', 
      'label' => 'Date & Time', 
      'content'=>function($data){ 
       if($data->created_on != '') 
        return date("m-d-Y H:i:s",strtotime($data->created_on)); 
      } 
     ], 

     ['class' => 'yii\grid\ActionColumn','template' => '{update}'], 
    ], 
]); ?>