public function actionAjaxFillTree()
{
if (!Yii::app()->request->isAjaxRequest) {
exit();
}
$parentId = NULL;
if (isset($_GET['root']) && $_GET['root'] !== 'source') {
$parentId = (int) $_GET['root'];
}
$children = Catalog::model()->getChildren($parentId);
if(is_array($children))
{
foreach($children as $parent)
{
$dataTree[]=$this->formatData($parent);
}
echo CTreeView::saveDataAsJson($dataTree);
}
}
К.О.: данные отдаются в json.
Теперь собственно проблема: мне нужно чтобы при щелчке по элементу из списка вызывалось действие контроллера и перерисовало главную область экрана. Вроде бы ничего сложного - CHtml::ajaxLink(…, ‘update’=>’#content’) при рисовании элемента списка. Но данные передаются json’ом, поэтому генерируемые для ajaxLink скрипты в отдачу не попадают. Id’шки рисуются какие надо, а действие не вызываются. Что делать, как быть? Есть идеи? Вручную регистрировать js скрипты каждый раз? Заранее благодарен!
Спасибо за ответ! Но, боюсь, Вы меня неправильно поняли. В любом случае, я уже реализовал данный механизм, правда, признаться, очень некрасивым решением. Добавил при формировании дерева в поле text ссылку с указывающим id и в тот же view, где отображается CTreeView добавил