Как я могу использовать JQuery, чтобы изменить CListViews dataProvider? - PullRequest
1 голос
/ 30 июля 2011

У меня есть следующий код, и когда нажата кнопка, я хочу изменить dataProvider ... как я могу сделать это с JQuery?

$this->widget('zii.widgets.CListView', array(
            'dataProvider'=>$inboxMessages,
            'template'=>"{items}\n{pager}", 
            'itemView'=>'_messageView',
            'id'=>'listMessages',
        ));

Ответы [ 2 ]

2 голосов
/ 30 июля 2011

Вы должны иметь возможность использовать вспомогательную функцию js yiiListView.update, чтобы делать то, что вы хотите.Вам просто нужно поставить условие перед созданием виджета, чтобы определить поставщика данных, например:

$dp = ($_GET['type'] == 'sent') ? $sentMessages : $inboxMessages;
$this->widget('zii.widgets.CListView', array(
    'dataProvider'=>$dp,
    ...

Затем создайте кнопку с событием щелчка, например:

$.fn.yiiListView.update('listMessages',
{data:'type=sent', url:'/messages?sort=timestamp&ajax=listMessages'});

Выможете посмотреть здесь для получения дополнительной информации или поиска примеров yiilistview.js.

0 голосов
/ 30 июля 2011

Я хотел бы думать, что это возможно.Однако поставщик данных назначается (и обрабатывается) на стороне сервера.Если вы хотите изменить провайдера данных с помощью jquery, похоже, вам нужно снова асинхронно загрузить все CListView

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...