当AJAX调用触发添加新记录时,如何更新Yii的CListView?

时间:2011-06-12 14:09:01

标签: ajax listview yii

昨天我被介绍到CListView并且可以设法显示我想要的关于我的记录的所有信息,并且以我想要的格式显示。我有一个“创建”按钮(添加一个新的联系人),它会打开一个带有相应字段的模态弹出窗口。当这个窗口关闭时,我返回到CListView,这是我的问题:我一直在尝试更新CListView(没有任何运气,显然)。

我相信用这个调用更新clistview应该很容易:$ .fn.yiiListView.update(' CListViews的ID '),但我找不到应该触发的正确事件这个电话。

接下来,我发布了我认为的相关代码:

按钮

echo CHtml::ajaxButton ("Create",
                          CController::createUrl('/contacts/create'),
                          array('onclick'=>'
                                    $("#createContact").dialog("open");
                                    return false;',
                                    'update'=>'#createContact'), 
                          array('id'=>'showCreateContactDialog'));?>

CListView中

$this->widget('zii.widgets.CListView', array(
    'dataProvider'=>new CArrayDataProvider($model->contacts, array('pagination'=>array('pageSize'=>5,),)),
    'itemView'=>'_view',
    'emptyText'=>'empty',
    'template'=>"{items}\n{pager}", 
    'pagerCssClass'=>'page-number',
    'id'=>'ajaxListView',
));?>

任何帮助都非常受欢迎!希望这最终能帮到某些人。

1 个答案:

答案 0 :(得分:2)

如果我理解正确,您的问题是找到触发CListView更新的内容(您提供的JS更新代码段应该可以正常工作)。

jQuery dialog event close可能就是你要找的东西;对话框关闭后会触发它。或者,还有一个beforeClose事件,它具有阻止对话框关闭的附加功能。