如何使用JQuery更改CListViews dataProvider?

时间:2011-07-29 21:11:59

标签: jquery listview yii

我有以下代码,当点击一个按钮时,我想更改dataProvider ...我怎么能用JQuery做这个?

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

2 个答案:

答案 0 :(得分:2)

您应该能够使用yiiListView.update js帮助函数来执行您想要的操作。在创建窗口小部件以确定数据提供者之前,您只需要设置条件,例如:

$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'});

您可以查看here了解更多信息或搜索yiilistview.js示例。

答案 1 :(得分:0)

我希望有可能。但是,数据提供程序在服务器端分配(和处理)。如果要使用jquery更改数据提供程序,看起来您需要异步加载所有CListView