我有以下代码,当点击一个按钮时,我想更改dataProvider ...我怎么能用JQuery做这个?
$this->widget('zii.widgets.CListView', array(
'dataProvider'=>$inboxMessages,
'template'=>"{items}\n{pager}",
'itemView'=>'_messageView',
'id'=>'listMessages',
));
答案 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