Io ho una view composta da due sidebar, left e right.
In quella left ci sono dei linkAjax che aggiornano la right, usando renderPartial.
Nella right c’è un CActiveForm e un link che apre un CJuiDialog.
Il problema è che caricando la view che popola la sidebar rigt via ajax, non mi carica gli script javascript che fanno funzionare CJuiDialog e alcuni componenti dentro CActiveForm.
In questi casi come si fa per inizializzare corrattemente i widgets caricati via ajax?
La soluzione migliore 'e di gestire tutto il js a mano senza usare i widget di yii (specialmente ajax link).
Se vuoi provarci lo stesso, fai la renderPartial con il quarto parametro a true, che dovrebbe aggiungere il clientscript.
Tieni presente che yii genera gli id come yt0, yt1 eccetera, per cui e’ possiblissimo che nella view principale avrai un link con nome yt0 e nella view caricata un altro link (o widget) con lo stesso id.
Questo e’ inevitabile perche’ il server non si puo’ sognare a quanto stava il contatore nella view di prima, per cui ti tocca dare un id a mano per tutta la roba che carichi via ajax.
In buona sostanza, se ti fai il js a mano ci guadagni, puoi usare delle belle closure e farti degli oggetti js che ricicli, puoi usare delegate per evitare di dover rieseguire una init per ogni link.