Bonjour,
J'ai un léger souci avec un widget que je suis en train de faire.
Actuellement, j'ai une page qui contient un moteur de recherche, un CGridView et une image générée à la volée par mon widget.
Le moteur de recherche rafraichit en ajax le CGridView, jusque là tout est bon. Par contre, je n'arrive pas à voir comment modifier mon widget pour qu'il puisse aussi être rafraichi.
Dans la vue principale, j'ai:
la vue _chart.php contient uniquement l'appel au widget (CPchartWidget) , qui n'a en fait que 2 fonctions: init() et run() (qui fait un echo du code html permettant d'afficher l'image générée).
Donc, je dois ajouter l'équivalent de
pour mon widget, mais je ne vois pas trop comment.
Est-ce que je suis obligé d'ajouter une action dans mon contrôleur, ou bien y'a t'il un moyen de recharger le widget en lui passant le modèle mis à jour (donc avec les nouveaux paramètres de recherche) ?
Merci d'avance.
J'ai un léger souci avec un widget que je suis en train de faire.
Actuellement, j'ai une page qui contient un moteur de recherche, un CGridView et une image générée à la volée par mon widget.
Le moteur de recherche rafraichit en ajax le CGridView, jusque là tout est bon. Par contre, je n'arrive pas à voir comment modifier mon widget pour qu'il puisse aussi être rafraichi.
Dans la vue principale, j'ai:
<?php Yii::app()->clientScript->registerScript('search', " $('.search-button').click(function(){ $('.search-form').toggle(); return false; }); $('.search-form form').submit(function(){ $('#vol-transfert-grid').yiiGridView('update', { data: $(this).serialize() }); return false; }); "); ?> <!-- search form --> <div class="search-form" style="display: block; float: left;"> <?php $this->renderPartial('_searchvolume',array( 'model'=>$model, )); ?> </div> <div class="clear"></div> <?php echo CHtml::link('Recherche on/off','#',array('class'=>'search-button')); ?> <!-- search-form --> <?php $this->widget('zii.widgets.grid.CGridView', array( 'id'=>'vol-transfert-grid', 'dataProvider'=>$model->search(), //'filter'=>$model, 'columns'=>array( 'DateModif', 'volok', 'volko', array( 'name' => 'weight', 'value' => 'StringUtilities::humanReadable($data->weight)', ), ), )); ?> <?php $this->renderPartial('_chart',array( 'id' => 'chart', 'model'=>$model, )); ?>
la vue _chart.php contient uniquement l'appel au widget (CPchartWidget) , qui n'a en fait que 2 fonctions: init() et run() (qui fait un echo du code html permettant d'afficher l'image générée).
Donc, je dois ajouter l'équivalent de
$('#vol-transfert-grid').yiiGridView('update', { data: $(this).serialize() });
pour mon widget, mais je ne vois pas trop comment.
Est-ce que je suis obligé d'ajouter une action dans mon contrôleur, ou bien y'a t'il un moyen de recharger le widget en lui passant le modèle mis à jour (donc avec les nouveaux paramètres de recherche) ?
Merci d'avance.