Have you ever wondered how to make an individual table look like the CGridView widget in Yii?
Continue reading...
Lets assume you have made a table on your on in a view file.
<table> <thead> ... </thead> <tbody> <tr> <td></td> </tr> </tbody> </table>
In order to make this table look like the standard Yii CGridView widget, first add a div
around the table:
<div class class="grid-view" id="my-grid"> <table> ... </table> </div>
Note the class
attribute. This should be grid-view
.
Also give that div a unique id
(here: my-grid).
Now comes the tricky part. We need to add the grid view style sheet and as well run the grid widget's JavaScript code. In your view file, add the following PHP code:
// Get the client script handler $cs=Yii::app()->getClientScript(); // Publish the grid view resources $baseScriptUrl=Yii::app()->getAssetManager()->publish( Yii::getPathOfAlias('zii.widgets.assets') ).'/gridview'; // ... and the style sheet $cssFile=$baseScriptUrl.'/styles.css'; $cs->registerCssFile($cssFile); // Add jQuery and bbq: $cs->registerCoreScript('jquery'); $cs->registerCoreScript('bbq'); // Add the gridview JavaScript $cs->registerScriptFile( $baseScriptUrl .'/jquery.yiigridview.js', CClientScript::POS_END ); // Add the code to format the div like a grid view: $cs->registerScript( 'applyGrid', "jQuery('#my-grid').yiiGridView(" .CJavaScript::encode(array()) .");" );
That's all!
Hope this is usefull for someone.
Comments
No comments