1

私は yiiGridView JavaScript 関数を使用して、(setInterval を使用して) 4 秒ごとにグリッドビューを連絡先で自動的に更新します。マウスが「表示」、「編集」、または「削除」ボタンのいずれかの上にある場合、常にツールチップが表示されます (ツールチップのグラフィックデザインを改善するために、yii ブートストラップ拡張機能を使用しています)。ただし、ajax リクエストがグリッドビューを更新すると、マウスを再度動かさない限り、ツールチップが消えて Google Chrome に再び表示されることはありません。Firefox と IE では、ツールチップが非表示になりますが、自動的に再び表示されます。マウスが以前と同じ位置にある場合、表示されていたツールチップを強制的に再度表示するために呼び出すことができる関数はありますか? yiiGridView の完全な関数でそのような関数を呼び出す必要があると思いますよね? 誰でも私を助けてもらえますか?

グリッド ビューを自動的に更新するために使用する JS コードを次に示します。

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

                }
        });
},4000)

どうもありがとうございました。

4

1 に答える 1

4

実際には CGridView で「afterAjaxUpdate」を使用する必要があります

/**
 * @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',
        ...
    ),
));
?>
于 2013-11-19T15:11:49.543 に答える