CGridView と、javascript を使用する 1 つのカスタム Formatter に問題があります。CGridView が任意の種類の ajax リクエストをトリガーすると、javascript で動作するフォーマッターが動作しなくなります。
簡単な例を 1 つ試してみましょう。
フォーマッター
class DFormatter extends CFormatter {
public function formatTest(){
$js = <<<EOD
console.log("test");
EOD;
$cs = Yii::app()->getClientScript();
$cs->registerScript("testjs", $js);
return false;
}
}
景色:
<?php $this->widget('zii.widgets.grid.CGridView',
array(
'id' => 'development-grid',
'dataProvider' => $model->search(),
'filter' => $model,
'columns' => array(
'id',
array(
'name' => 'testField',
'type' => 'test',
),
array(
'class' => 'CButtonColumn',
),
),
)); ?>
最初の Ajax リクエストの後、フォーマッタで使用されている JavaScript コードが機能しなくなります。
ありがとう。