ถ้าต้องการเปลี่ยนการแสดงผลแค่บาง Cell ใน GridView table ใน Yii Framework วันนี้ ลองเอาวิธีที่ผมลองนำวิธีจาก
CGridView: Render customized/complex datacolumns มาใช้ดูครับ
จากโจทย์ที่ต้องการ คือผมต้องการเปลี่ยนสีของตัวหนังสือที่อยู่ใน Cell ของช่องข้อมูลที่ต้องการ โดยจะทำการเปรียบเทียบ หากข้อมูลในช่องนั้น มีค่ามากกว่า 0 ให้ทำการเปลี่ยนสีฟอนต์ของตัวหนังสือให้เป็นสีแดง ดังรูป
อันดับแรกให้ทำการเพิ่ม function ใน Class ใน Controller ก่อน ในที่นี้ ผมทำการเพิ่ม function renderGridCell ใน QuizController เพื่อให้ส่วนของ View ทำการเรียก renderGridCell ไปใช้งาน
protected function renderGridCell($data)
{
//var_dump($data);
if($data["cnt"]>0){
echo '<font color="red">'.$data["cnt"].'</font>';
} else {
echo $data["cnt"];
}
}
ในส่วนของ View ที่ Widget bootstrap.widgets.TbGridView ผมทำการเรียกใช้ renderGridCell ดังรูป
เมื่อแสดงผล เราจะได้ตัวหนังสือสีแดง เมื่อค่าที่นำมาเปรียบเทียบมากกว่า 0
ลองนำไปประยุกต์ใช้กันดูนะครับ ขอให้สนุกกับ Yii Framework นะครับ