[РЕШЕНО] CGridView & пейджер

Друзья, не могу решить следующую проблему.

Надо как-то в экшены апдейта и удаления добавить параметр текущей строки.

пробовал сделать как-то так




            		'delete' => array(

            			'label' => 'Удалить',

            			'url' => 'Yii::app()->controller->createUrl("products/update", array("id" => $data->id, 'page' => $page))',

            		),




$page вычисляется до инициализации грида.

в общем такой прикол не работает.

пробовал сделать функцию хэлпер которая делает то же самое, просто передаю 2 параметра, а она подставляет в тот же код




Yii::app()->controller->createUrl("products/update", array("id" => id, 'page' => $page))



ну хоть ты тресни не хочет подставлять параметр page. что я делаю не так ?

куда смотреть что бы сделать то что надо ?

страница нужна что бы после редактирования человека не уносило с 50 на 1 страницу )

может есть что-то встроенное а я пропустил ?

решение найдено!

По какой-то причине, Yii не позволяет редактировать параметры дефолтных экшенов.

таких как view, delete и update.

Для того что бы сформировать нужную ссылку, надо в ‘template’ сменить стандартные имена на что-то другое.

к примеру




  'template'=>'{edit} {del}',

  'buttons'=>array(

   'edit' => array(

	'label' => 'Редактировать',

	'url'	=> 'Yii::app()->controller->createUrl("products/edit", array("id" => $data->id, "page" => $this->grid->dataProvider->pagination->currentPage+1))'

	),




update я сменил на edit, а текущую страницу получил через $this->grid->dataProvider->pagination->currentPage+1 (+1 из-за того что отсчет начинается с нуля, а реально в параметрах используется с единицы)

вуаля, все работает )

не забываем править имена экшенов.