使用Ajax在Gridview更新后显示工具提示

时间:2013-08-21 16:02:23

标签: javascript jquery ajax gridview yii

我使用yiiGridView javascript函数每4秒自动更新一次有联系人的gridview(使用setInterval)。 当鼠标悬停在“视图”,“编辑”或“删除”按钮之一时,总会显示一个工具提示(我正在使用yii bootstrap扩展来为工具提示提供更好的图形设计)。但是,当ajax请求更新gridview时,工具提示会消失,并且永远不会再显示在Google Chrome中,除非我再次移动鼠标。在Firefox和IE中,工具提示隐藏但随后它会自动再次显示。是否有任何函数我可以调用以强制显示的工具提示再次显示如果鼠标继续与以前相同的位置?我想我必须在yiiGridView的完整功能中调用这样的函数吧?有人可以帮帮我吗?

以下是我用来自动更新网格视图的JS代码:

setInterval(function(){
        $('#contact-grid').yiiGridView('update', {
                data: $(this).serialize(),
                complete: function(jqXHR, status) {

                }
        });
},4000)

非常感谢你。

1 个答案:

答案 0 :(得分:3)

你应该实际使用'ajaxUpdate'在CGridView

/**
 * @var string a javascript function that will be invoked after a successful AJAX response is received.
 * The function signature is <code>function(id, data)</code> where 'id' refers to the ID of the grid view,
 * 'data' the received ajax response data.
 */
public $afterAjaxUpdate;

你可以像这样使用它:

<?php
$this->widget('zii.widgets.grid.CGridView', array(
    'id' => 'mygrid',
    'dataProvider' => $dataprovider,
    'afterAjaxUpdate' => 'function(){$(\'[data-toggle="tooltip"]\').tooltip({ html:true, trigger:\'hover\'})}', // <-- this line does the trick!
    'columns' => array(
        'name',
        'address',
        ...
    ),
));
?>