sfGridSolutionPlugin alpha
Par Jean-Philippe Serafin le mardi, septembre 8 2009, 15:24 - Lien permanent
Ca y est, voici la première version téléchargeable de sfGridSolutionPlugin. Attention, il s'agit d'une version alpha pas encore vraiment débuggée sur IE, des fonctionnalités risquent fortement de changer.
Vous pouvez jeter un oeil sur la démo.
Exemple d'implémentation :
Dans votre contrôleur symfony :
/** * getting main data * @param sfWebRequest $request A request object */ public function executeGetData(sfWebRequest $request) { //initialise $gridAction = new sfGridSolutionQuery($request); //defining get datas query $gridAction->setQuery( Doctrine_Query::create() ->select('*') ->from('Exemple e') ); } /** * Showing demo grid * @param sfRequest $request A request object */ public function executeIndex(sfWebRequest $request) { //init grid 'showHeader' => true, 'resizeColumns' => true, 'selectRow' => true, 'sortOn' => 'id', 'sortBy' => 'DESC', 'getDataUrl' => 'Exemple/getData', // => route to find datas 'saveDataUrl' => 'Exemple/saveData', // => route to save data 'getDataMethod' => 'post', 'page' => 1, 'perPage' => 20, 'height' => 300, 'imagesPath' => 'sfGridSolutionPlugin/images' )); //adding id $this->grid->addGroup( new sfGridSolutionGroup( 'label' => ' ', 'isResizable' => true, 'cssClass' => 'group', new sfGridSolutionColumn( 'label' => 'id', 'model' => 'id', 'align' => 'right', 'filterable' => true, 'sortable' => true, 'width' => '90', new sfGridSolutionAction( 'title' => 'Show details', 'method' => 'showDetails', // => will call javascript showDetails() method 'icon' => 'viewmag.png' ) ) ) ) ) ) ) ) ); //group1 $this->grid->addGroup( new sfGridSolutionGroup( 'label' => 'group1', 'isResizable' => true, 'cssClass' => 'group', 'collapsable' => 'true', 'collapse' => false, new sfGridSolutionColumn( 'label' => 'int_field1_1', 'model' => 'int_field1_1', 'align' => 'right', 'filterable' => false, 'sortable' => true, 'width' => '90' ) ), new sfGridSolutionColumn( 'label' => 'char_field1_2', 'model' => 'char_field1_2', 'align' => 'right', 'filterable' => true, 'sortable' => true, 'editable' => true, 'width' => '90' ) ), new sfGridSolutionColumn( 'label' => 'date_field1_3', 'model' => 'date_field1_3', 'editable' => true, 'align' => 'left', 'filterClass' => 'DateFilter', 'filterable' => true, 'sortable' => true, 'width' => '130' ) ) ) ) ) );
Dans la vue :
<h1>Demo Data Grid</h1> <div id="mygrid" style=""></div> <script type="text/javascript"> function showDetails(event, action, cell){ cell.row.buildExpandTip('Exemple/getDetails?id=' + cell.row.datas['id'].value); } </script>
Un peu plus de doc verra le jour au fur et à mesure du développement.

Commentaires
je tenais à te faire un petit messsage pour te dire que ton blog st très agréable :)
I like this post! Never read more interesting article on this theme. Thanks, mate!