2015-04-22 19 views
14

Trong mã nhìn của tôi, tôi có điều này:Yii2 GridView Customize Tiêu đề Row

<?= GridView::widget([ 
     'dataProvider' => $dataProvider, 
     'columns' => [ 
      ['class' => 'yii\grid\SerialColumn'], 
      ['label' => 'Training Score', 
       'attribute' => 'scoreTraining', 
       'format' => ['decimal',2], 
      ], 
      ['label' => 'Exam Score', 
       'attribute' => 'scoreExam', 
       'format' => ['decimal',2], 
      ], 
     ], 
    ]); 

Thông thường tên tiêu đề sẽ là "Điểm Đào tạo" và "Điểm thi"

Là có thể trong yii2 GridView để tùy chỉnh hàng tiêu đề? để dòng tiêu đề của tôi trông như thế nào trong 2 dòng ..

<table border=1> 
 
    <tr><th>Training <br> Score</th><th>Exam <br> Score</th></tr> 
 
</table>

Trả lời

17

Để đạt được điều đó, sử dụng tài sản header thay vì label:

<?= GridView::widget([ 
    'dataProvider' => $dataProvider, 
    'columns' => [ 
     ['class' => 'yii\grid\SerialColumn'], 
     [ 
      'header' => 'Training <br> Score', 
      'attribute' => 'scoreTraining', 
      'format' => ['decimal', 2], 
     ], 
     [ 
      'header' => 'Exam <br> Score', 
      'attribute' => 'scoreExam', 
      'format' => ['decimal', 2], 
     ], 
    ], 
]); 

Bằng cách đó nội dung HTML sẽ không được mã hóa.

tài liệu chính thức:

+6

Vâng, nhưng theo cách này thứ tự bị mất và tiêu đề (tiêu đề) mới trở thành văn bản thuần túy. @arogachev – SaidbakR

8

Sử dụng 'nhãn' thuộc tính để thiết lập các tiêu đề:

http://www.yiiframework.com/doc-2.0/yii-grid-datacolumn.html# $ nhãn-chi tiết

Bằng cách này, phân loại chức năng sẽ vẫn hoạt động.

Sử dụng 'encodeLabel' => sai cho phép HTML thực thể như
làm việc:

http://www.yiiframework.com/doc-2.0/yii-grid-datacolumn.html# $ encodeLabel-chi tiết

Ví dụ:

[ 
       'attribute' => 'firstname', 
       'label' => 'First <br /> Name', 
       'encodeLabel' => false, 
], 
Các vấn đề liên quan