Widgets In Una View Dinamica

Difficile sintetizzare la domanda nel titolo! :)

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?

Spero di essere stato chiaro…

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.

Il quarto parametro mi mancava!

Avendo gli id già belli definiti mettendolo a true funziona tutto alla grande.

grazie