【问题标题】:How can I update Yii's CListView when a new record was added triggered by an AJAX call?当 AJAX 调用触发添加新记录时,如何更新 Yii 的 CListView?
【发布时间】:2011-06-12 14:09:00
【问题描述】:

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

我相信用这个调用更新 clistview 应该很容易:$.fn.yiiListView.update('CListViews's 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',
));?>

非常欢迎任何帮助!希望这最终也能对某人有所帮助。

【问题讨论】:

    标签: ajax listview yii


    【解决方案1】:

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

    jQuery dialog event close 可能是您正在寻找的;它会在对话框关闭后触发。或者,还有一个beforeClose 事件具有防止对话框关闭的附加功能。

    【讨论】:

    • 最后我完全改变了方法并最终使用了 json 编码数据,但我必须实施你的建议,它工作得很好,所以谢谢!!
    猜你喜欢
    • 1970-01-01
    • 2014-09-05
    • 1970-01-01
    • 1970-01-01
    • 2023-01-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多