Динамический button template в GridView
Динамический button template в GridView
Всем привет, мне нужно для некоторых объектов(например у которых атрибут can_delete = 0) не выводить иконку удаления и редактирования, возможно ли такое сделать?
Re: Динамический button template в GridView
Насколько я понимаю, нет. Темплейт задается для всего грида. Но можно, пожалуй, яваскриптами это как-то обработать, поудаляв кнопки в нужных местах.
Re: Динамический button template в GridView
Я делаю так
Код: Выделить всё
array(
'class' => 'CButtonColumn',
'buttons' => array(
'delete' => array(
'imageUrl' => '/images/delete_pg.png',
'visible' => '$data->can_delete != 0',
),
),
'template' => '{delete}',
Re: Динамический button template в GridView
большое спасибо. тоже вначале с помощью Js это решил
Re: Динамический button template в GridView
Немного усложним...
Нужно в зависимости от $data->cond:
1. Изменить label
2. изменить картинку в imageUrl
3. оставить visible = true.
Нужно в зависимости от $data->cond:
1. Изменить label
2. изменить картинку в imageUrl
3. оставить visible = true.
Re: Динамический button template в GridView
лучше все-таки упрощатьandreyrud писал(а): Немного усложним...
Код: Выделить всё
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'recipe-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
'rec_id',
// это в значения всякую всячину выводим
array(
'name'=>'user_name',
'type'=>'raw',
'value'=>'$data->pharmacy->user_name',
),
array(
'name'=>'rec_sig',
'type'=>'raw',
// тут душа может развернуться
'value'=>'gettype($data->rec_sig).": ".print_r($data->rec_sig, true)',
),
// а тут кнопки городим сколько надо и с разными условиями
array(
'class'=>'CButtonColumn',
'template'=>'{noop}{sign}{nosign}{print}{update}',
'updateButtonImageUrl' => "/images/update.png",
'buttons'=>array(
'noop'=>array(
'visible'=>'!is_null($data->rec_checked)',
'imageUrl'=>'/images/r_signed.png',
),
'sign'=>array(
'visible'=>'is_null($data->rec_checked)
&& !is_null($data->rec_sig)',
'imageUrl'=>'/images/r_unsigned.png',
'label'=>'signed',
),
'nosign'=>array(
'visible'=>'is_null($data->rec_checked)
&& is_null($data->rec_sig)',
'imageUrl'=>'/images/r_unsigned.png',
'label'=>'no signed',
),
'print'=>array(
'imageUrl'=>'/images/r_print.png',
'url'=>'Yii::app()->controller->createUrl("printview",array("id"=>$data->primaryKey))',
),
)
),
),
));