Привет всем.
Использую сласс CTreeView.
[font="Garamond"] public function init()
{
if(isset($this->htmlOptions['id']))
$id=$this->htmlOptions['id'];
else
$id=$this->htmlOptions['id']=$this->getId();
if($this->url!==null)
$this->url=CHtml::normalizeUrl($this->url);
$cs=Yii::app()->getClientScript();
$cs->registerCoreScript('treeview');
$options=$this->getClientOptions();
$options=$options===array()?'{}' : CJavaScript::encode($options);
$cs->registerScript('Yii.CTreeView#'.$id,"jQuery(\"#{$id}\").treeview($options);");
if($this->cssFile===null)
$cs->registerCssFile($cs->getCoreScriptUrl().'/treeview/jquery.treeview.css');
else if($this->cssFile!==false)
$cs->registerCssFile($this->cssFile);
echo CHtml::tag('ul',$this->htmlOptions,false,false)."\n";
echo self::saveDataAsHtml($this->data);
}[/font]
Здесь все понятно.
После некоторых манипуляций с массивом $data возникает необходимость заново перерисовать хтмл дерева, ответ должен быть дан ajax’ом. Для этого с котроллера вызываю виджет
[font=“Garamond”]$this->widget(‘NavigationTree’,array(‘data’=>$data,‘collapsed’=>false,‘htmlOptions’=>array(‘class’=>‘treeview-gray’))) ;[/font]
Где NavigationTree - класс, наследуемый от CWidget и методж init из которого приведен выше.
В результате к возвращаемому хтмл не применяются стили, то есть получаю немного не то, что надо)
Результат идентичен, если закомментировать выделенную выше строку в методе init
[font=“Garamond”]$cs->registerScript(‘Yii.CTreeView#’.$id,“jQuery(\”#{$id}\").treeview($options);");[/font]
что меня наводит на мысль, что с контроллера не получается выполнить тот жабаскрипт.
NavigationTree.php лежит, естественно, в protected/components
Кто что может подсказать?