CJuiDialog и renderPartial

Добрый вечер, господа! Возникла проблемка с CJuiDialog - гугл молчит, полдня уже убила(

Есть следующий виджет:




$this->beginWidget('zii.widgets.jui.CJuiDialog', array(

	'id'=>'some_id',

	'options'=>array(

	'title'=>'Some Title',

	'width'=>500,

	'height'=>300,

	'autoOpen'=>false,

	'modal'=>true,

  ),

));

//тут кое-какое содержимое


$this->endWidget('zii.widgets.jui.CJuiDialog');




	echo "

		<a class=\"addStreamsDialog\" onclick=\"$('#some_id').dialog('open'); return false;\" href=\"#\">Click Me</a>

	";

/*


Работает, выводится.

Многое на страничке написано на аяксе, и рядом с виджетом находится несколько ссылок такого вида:





*/


echo "<li>".CHtml::ajaxLink("some name",

		Yii::app()->createUrl('controller/action'),

		array(

			"type"=>"POST",

			"update"=>"#update",

			'data'=>array('some' => 'data')

		),

		array("id"=>"some_id".uniqid())

		)."</li>";

//и контейнер, в которые они апдейтятся


<div id="#update"></div>


//Это тоже работает - вот контроллер:


function actionAction(){

 $out = "some data with ajaxLinks";

 $this->renderPartial("view","out"=>$out,false,true);

 

}	



В чем проблема.

Если НЕ кликать по ajaxLink-ам (и соответственно, ничего не рендерить) - все работает, попап открывается.

Если кликнуть по аякс линку и отрендерить что-то в соседний див с true на обработке JS, все рендерится, но попап перестает работать. В консоли ошибка .dialog is not a function.

Если выставить обработку JS в false, попап продолжает открываться, но само собой, перестают работать отрендеренные линки. Т.е. при рендере где-то теряется код диалога, видимо.

Есть ли способ заставить работать CJuiDialog вне зависимости от того, что там в соседний див рендерится? Или есть более элегантный способ для работы с полностью аяксовой страницей? Я с Yii совсем недавно :(

Голова уже варит плохо, но кажется я понимаю о чем твоя проблема. Описано довольно подробно.

Полагаю ошибку ".dialog is not a function" ты получаешь потом, что аякс подгружает код


<script type='text/javascript' src='....'></script>

ведь 4-й параметр renderPartial у тебя true, а на представлении "view" наверняка какой-то виджет, который регистрирует для себя js файлы.

Повторное получение этих файлов приводит к поломке того, что уже работало на странице. И выход тут только один, не присылать в аякс запросы .js файлов. Делать это можно несколькими способами. Например отключить 4-й параметр, или очищать в ClientScript параметр scriptFiles() в конце представления (но тут не все так просто, ибо этот параметр protected) в общем решений несколько…

Главное понимать причину проблемы