2017-08-07 7 views
1

私はYii 2のGridViewの表示形式を変更したいと思います。たとえば、インターネット市場のようなデータの行や列を製品に表示したいとします。 たとえば、各行に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}'], 
    ], 
]); ?> 
関連する問題