Мне нужно добавить свою кнопку в CGridColumn. Я делаю так:
array(
'class'=>'CButtonColumn',
'template'=>'{xxx}',
'buttons'=>array(
'xxx' => array(
'label'=>'...', // text label of the button
'url'=>'', // a PHP expression for generating the URL of the button
'imageUrl'=>Yii::app()->request->baseUrl . '/images/accept.png',
'options'=>array(''), // HTML options for the button tag
'click'=>'', // a JS function to be invoked when the button is clicked
'visible'=>'true', // a PHP expression for determining whether the button is visible
)
)
),
А дальше хз что делать. Мне надо чтоб при клике на мою кнопку у этой кнопки менялась картинка и чтоб аяксом выполнялись какие-то действия, а потом чтоб в конце обновлялся грид.
писать наследника CButtonColumn и перегружать renderButton, в котором регистрировать свой javascript обработчик, код которого будет сформирован с использованием $data, что то вроде этого:
использовать только javascript - скрипт, передаваемый в свойство click кнопки - при этом будет доступ к данным, выведенным в грид, но не через $data, а через элементы DOM. Каждая кнопка находится в строке таблицы, т.е. от this, который попадет в обработчик onclick можно перейти к строке таблицы, содержащей кнопку и "вытащить" из строки нужные данные.
Ооо, спасибо, не слышал про атрибут "ajax" - в документации его не нашел. Если можете, посмотрете плиз еще 1 тему кот орую я ниже создал, там тоже про грид - как сделать чтоб хидер сгенерился в виде ссылки