После вызова ajax я вызываю функцию
$this->widget('zii.widgets.CListView', array(
'viewData'=>array('sent'=>$sent),
'dataProvider'=>$dp,
'pager' => array(
'prevPageLabel'=>'< Anterior',
'nextPageLabel'=>'Siguiente >',
'header'=>'Pagina: ',
'pageSize'=>5,),
'template'=>"{items}\n{pager}", //template
'itemView'=>'_messageView',
'emptyText'=>'No ha recibido ningun mensaje todavia',
'enablePagination'=>true,
'baseScriptUrl'=>'/../../Javascript/messages/messages.js',
'afterAjaxUpdate' => 'js:callFunction()',
'id'=>'listMessages',
));
Функция callFunction () определена в отдельном js-файле, который я включаю при первой загрузке страницы, например:
<script type="text/javascript" src="/../../Javascript/messages/messages.js"></script>
Функция вызывается при первой загрузке страницы, но после вызова ajax она больше не вызывается. Я подозревал, что это потому, что не удалось найти файл message.js, поэтому я попытался включить его снова, добавив этот фрагмент кода в определение CListView:
'baseScriptUrl'=>'/../../Javascript/messages/messages.js',
но теперь я получаю эту ошибку: jQuery("#listMessages").yiiListView is not a function
... Есть идеи?
Решение
$this->widget('zii.widgets.CListView', array(
'dataProvider'=>$ligas,
'viewData'=>array('joinedArray'=>$joinedArray),
'template'=>"{items}", //template
'itemView'=>'_viewLiga',
'emptyText'=>'Usted todavia no se ha unido a ninguna liga',
'afterAjaxUpdate'=>'js:function(id, data) {myLigasListUpdated();}',
'enablePagination'=>false,
'id'=>'listViewMyLigas',
));
Проблема была в сигнатуре функции, которую нужно было вызывать после обновления ajax. Это должно быть как указано в решении. Спасибо @ jfriend00