version 4.1.0

บทที่ 14 รวบรวมคำสั่งเรียกใช้งาน Zii Grid

  อังคารที่ 10 มีนาคม พ.ศ. 2558 เวลา 15:58:10 น.      3,163 ครั้ง


บทที่ 14 รวบรวมคำสั่งเรียกใช้งาน Zii Grid

แนะนำ

Widget (วิดเจ็ด) เป็นส่วนขยายเพิ่มเติมแบบหนึ่ง ข้อดีของ Widget คือ สามารถเรียกใช้งานซ้ำ ๆ ได้ เหมาะสำหรับเว็บแอพพลิเคชั่นขนาดใหญ่ ๆ ที่มีองค์ประกอบมากมาย "วิดเจ็ด" เป็นอีกส่วนหนึ่งที่ผมชอบมากใน Yii เพราะมีการออกแบบจัดการได้ดีมาก โดยสามารถรวมทรัพยกรพวก Script และ รูปภาพ เอาไว้ใน Widget ได้เลย ใน Yii เขาจะเรียกว่า asset แล้วในเวอร์ชั่นใหม่ "Widget" สามารถเปลี่ยนหน้าตาไปตามธีมได้ด้วย


CGridView : Default

 $dataProvider = new CActiveDataProvider('Profile', array(
    'pagination' => array(
        'pageSize' => 10,        // กำหนดให้หน้านึงแสดง 10 รายการ
    ),
    // ข้อมูลที่ต้องการแสดง (field)
    'sort' => array(           
        'attributes' => array(
            'user_id',
            'firstname',
            'lastname'
        ),
    ),
));
 
$this->widget('zii.widgets.grid.CGridView', array(
    'id' => 'grid_1',
    'dataProvider' => $dataProvider,
    'enablePagination' => true,
    'columns' => array(
        array(
            'name' => 'user_id',
            'header' => 'User ID',
        ),
        array(
            'name' => 'firstname',
            'header' => 'Firstname',
        ),
        array(
            'name' => 'lastname',
            'header' => 'Lastname',
        ),
    ),
));

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 1 | รูปภาพตัวอย่าง

CGridView : CCheckBoxColumn

 $dataProvider = new CActiveDataProvider('Profile', array(
    'pagination' => array(
        'pageSize' => 10,        // กำหนดให้หน้านึงแสดง 10 รายการ
    ),
    // ข้อมูลที่ต้องการแสดง (field)
    'sort' => array(            
        'attributes' => array(
            'user_id',
            'firstname',
            'lastname'
        ),
    ),
));
 
$this->widget('zii.widgets.grid.CGridView', array(
    'id' => 'grid_1',
    'dataProvider' => $dataProvider,
    'enablePagination' => true,
    'columns' => array(
        array(
            'class' => 'CCheckBoxColumn',
        ),
        array(
            'name' => 'user_id',
            'header' => 'User ID',
        ),
        array(
            'name' => 'firstname',
            'header' => 'Firstname',
        ),
        array(
            'name' => 'lastname',
            'header' => 'Lastname',
        ),
    ),
));

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 2 | รูปภาพตัวอย่าง

CGridView : CButtonColumn

 $dataProvider = new CActiveDataProvider('Profile', array(
    'pagination' => array(
        'pageSize' => 10,        // กำหนดให้หน้านึงแสดง 10 รายการ
    ),
    // ข้อมูลที่ต้องการแสดง (field)
    'sort' => array(            
        'attributes' => array(
            'user_id',
            'firstname',
            'lastname'
        ),
    ),
));
 
$this->widget('zii.widgets.grid.CGridView', array(
    'id' => 'grid_1',
    'dataProvider' => $dataProvider,
    'enablePagination' => true,
    'columns' => array(
        array(
            'name' => 'user_id',
            'header' => 'User ID',
        ),
        array(
            'name' => 'firstname',
            'header' => 'Firstname',
        ),
        array(
            'name' => 'lastname',
            'header' => 'Lastname',
        ),
        array(
            'class' => 'CButtonColumn',
        ),
    ),
));

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 3 | รูปภาพตัวอย่าง

CGridView : CDataColumn

 $dataProvider = new CActiveDataProvider('Profile', array( 
    'pagination' => array(
        'pageSize' => 10,        // กำหนดให้หน้านึงแสดง 10 รายการ
    ),
    // ข้อมูลที่ต้องการแสดง (field)
    'sort' => array(            
        'attributes' => array(
            'user_id',
            'firstname',
            'lastname'
        ),
    ),
));
 
$this->widget('zii.widgets.grid.CGridView', array(
    'id' => 'grid_1',
    'dataProvider' => $dataProvider,
    'enablePagination' => true,
    'columns' => array(
        array(
            'name' => 'user_id',
            'header' => 'User ID',
        ),
        array(
            'class' => 'CDataColumn',
            'name' => 'firstname',
            'value' => '$data->firstname', // ตัวอย่าง $data->FieldName
        ),
        array(
            'name' => 'lastname',
            'header' => 'Lastname',
        ),
    ),
));

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 4 | รูปภาพตัวอย่าง

CGridView : CLinkColumn

 $dataProvider = new CActiveDataProvider('Profile', array(
    'pagination' => array(
        'pageSize' => 10,        // กำหนดให้หน้านึงแสดง 10 รายการ
    ),
    // ข้อมูลที่ต้องการแสดง (field)
    'sort' => array(            
        'attributes' => array(
            'user_id',
            'firstname',
            'lastname'
        ),
    ),
));
 
$this->widget('zii.widgets.grid.CGridView', array(
    'id' => 'grid_1',
    'dataProvider' => $dataProvider,
    'enablePagination' => true,
    'columns' => array(
        array(
            'name' => 'user_id',
            'header' => 'User ID',
        ),
        array(
            'name' => 'firstname',
            'header' => 'Firstname',
        ),
        array(
            'name' => 'lastname',
            'header' => 'Lastname',
        ),
        array(
            'class' => 'CLinkColumn',
            'header' => 'CLinkColumn',
            'labelExpression' => '$data->firstname',
            'urlExpression' => 'Yii::app()->createUrl("controller/action/", array("id" => $data->user_id))',
        ),
    ),
));

รูปภาพตัวอย่าง

รูปภาพตัวอย่าง

รูปภาพที่ 5 | รูปภาพตัวอย่าง




นักแปล / นักเขียน / เรียบเรียง

author

เอกบิณ ใจแก้วมา (แม็ก)

"โปรแกรมเมอร์ตัวเล็ก ๆ" สะสมประสบการณ์ด้านการพัฒนาซอฟแวร์มามากกว่า 11 ปี
# ติดตามผลงานได้ที่ | พบกับเราที่ Google+ | Facebook






Comment