CGridView/листалка - запомнить текущую страницу

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
maxyer
Сообщения: 290
Зарегистрирован: 2012.01.10, 17:55
Откуда: отсюда

CGridView/листалка - запомнить текущую страницу

Сообщение maxyer »

Здравствуйте !
Помогите пожалуйста.
Допустим у меня CGridView с листалкой страниц.
У него, как водится, CButtonColumn, в котором кнопочка, ведущая на actionUpdate().
В случае успешного завершения actionUpdate() мне нужно снова вернуться на страницу с CGrid-ом.
Как вернуться я знаю -

Код: Выделить всё

if($model->save())
    $this->redirect(array('index'));
 
А вот как сделать, чтобы у CGrid-а при этом была та же самая страница открыта ...
p0rsche
Сообщения: 192
Зарегистрирован: 2012.01.18, 08:28
Контактная информация:

Re: CGridView/листалка - запомнить текущую страницу

Сообщение p0rsche »

не мучиться и делать ajax-ом.
maxyer
Сообщения: 290
Зарегистрирован: 2012.01.10, 17:55
Откуда: отсюда

Re: CGridView/листалка - запомнить текущую страницу

Сообщение maxyer »

p0rsche писал(а):не мучиться и делать ajax-ом.
нельзя ли поподробнее ?
В каком смысле делать ajax'ом ? - actionUpdate() на той же странице, что и CGrid ?
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: CGridView/листалка - запомнить текущую страницу

Сообщение ElisDN »

Указать текущую страницу в адресе кнопки в CButtonColumn:

Код: Выделить всё

'updateButtonUrl' => 'Yii::app()->controller->createUrl("update", array("id"=>$data->id, "returnPage"=>Yii::app()->request->getQuery("page", 1)))'; 
и в контроллере перенаправлять обратно на неё:

Код: Выделить всё

if($model->save())
    $this->redirect($this->createUrl('index', 'page'=>Yii::app()->request->getQuery("returnPage", 1))); 
Только у CDataProvider не забудьте 'pageVar'=>'page' указать.
maxyer
Сообщения: 290
Зарегистрирован: 2012.01.10, 17:55
Откуда: отсюда

Re: CGridView/листалка - запомнить текущую страницу

Сообщение maxyer »

ElisDN писал(а):Указать текущую страницу в адресе кнопки в CButtonColumn:

Код: Выделить всё

'updateButtonUrl' => 'Yii::app()->controller->createUrl("update", array("id"=>$data->id, "returnPage"=>Yii::app()->request->getQuery("page", 1)))';  
и в контроллере перенаправлять обратно на неё:

Код: Выделить всё

if($model->save())
    $this->redirect($this->createUrl('index', 'page'=>Yii::app()->request->getQuery("returnPage", 1)));  
Класс !!!
Работает.
Большое спасибо.
Только у CDataProvider не забудьте 'pageVar'=>'page' указать.
Зачем ?
Оно ведь имеет имя по умолчанию - page.
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: CGridView/листалка - запомнить текущую страницу

Сообщение ElisDN »

Ну часто pageVar по умолчанию по имени модели формируется, например «Post_page».
Аватара пользователя
kosenka
Сообщения: 677
Зарегистрирован: 2009.09.26, 12:41
Откуда: москва
Контактная информация:

Re: CGridView/листалка - запомнить текущую страницу

Сообщение kosenka »

maxyer писал(а):Здравствуйте !
Помогите пожалуйста.
Допустим у меня CGridView с листалкой страниц.
У него, как водится, CButtonColumn, в котором кнопочка, ведущая на actionUpdate().
В случае успешного завершения actionUpdate() мне нужно снова вернуться на страницу с CGrid-ом.
Как вернуться я знаю -

Код: Выделить всё

if($model->save())
    $this->redirect(array('index'));
А вот как сделать, чтобы у CGrid-а при этом была та же самая страница открыта ...
Если у Вас с английским все хорошо, почитайте http://www.ramirezcobos.com/2010/12/19/ ... cgridview/
maxyer
Сообщения: 290
Зарегистрирован: 2012.01.10, 17:55
Откуда: отсюда

Re: CGridView/листалка - запомнить текущую страницу

Сообщение maxyer »

Если у Вас с английским все хорошо, почитайте http://www.ramirezcobos.com/2010/12/19/ ... cgridview/
Спасибо, почитал.
В принципе это ведь то же самое решение, которое уже было предложено, только чуть более развернутое.
Не очень понравилось использование программного кода в тексте представления.
А еще мне показалось, что английский язык для автора этого текста не родной, судя по некоторым ошибкам в тексте ;)

ЗЫ. Только сейчас заметил, что автора зовут Ramirez :D
Ответить