Here is my Query, which is generated by CSqlDataProvider…
( SELECT e.E_NAME AS "E_NAME", e.E_TLID AS "E_TLID",
(SELECT E_NAME FROM employee WHERE employee.E_ID = e.E_TLID) as TLNAME,
e.E_DEPTID AS "E_DEPTID",
(SELECT D_NAME FROM department WHERE department.D_ID = e.E_DEPTID) as DPTNAME,
l.LS_FROM AS "LS_FROM", l.LS_TO AS "LS_TO", l.LS_STATUS AS "LS_STATUS",
l.LS_DAYS AS "LS_DAYS", "L" AS "TYPE", l.LS_ID AS "LEAVEID" FROM
employee e JOIN leave_summary l on e.E_ID = l.LS_EMPID WHERE 1=1 ) UNION
( SELECT e.E_NAME AS "E_NAME", e.E_TLID AS "E_TLID",
(SELECT E_NAME FROM employee WHERE employee.E_ID = e.E_TLID) as TLNAME,
e.E_DEPTID AS "E_DEPTID",
(SELECT D_NAME FROM department WHERE department.D_ID = e.E_DEPTID) as DPTNAME,
c.L_DATE AS "LS_FROM", c.L_DATE AS "LS_TO", c.STATUS AS "LS_STATUS",
"1" AS "LS_DAYS", "C" AS "TYPE", c.C_ID AS "LEAVEID"
FROM employee e JOIN comp_off c on e.E_ID = c.E_ID WHERE 1=1 )
ORDER BY DPTNAME desc LIMIT 10
Sort Array defined in model
$sort->defaultOrder = 'E_NAME';
$sort->attributes = array(
'E_NAME'=>array(
'asc'=>'E_NAME',
'desc'=>'E_NAME desc',
),
'TYPE'=>array(
'asc'=>'TYPE',
'desc'=>'TYPE desc',
),
);
Code @ Gridview…
array( // display Type
'name'=>'Type',
'type'=>'raw',
'value'=>array($smodel,'getTypeName'),
),
getTypeName Function in Model…
public function getTypeName($data,$row)
{
if ( trim($data["TYPE"]) == 'L' )
return 'Leave';
else if ( trim($data["TYPE"]) == 'C' )
return 'Comp. Off.';
}
How can I make TYPE column as sortable?