[Risolto] Afterdelete Problema

Ciao ragazzi, ho un problema con l’afterDelete.

nella mia applicazione vorrei semplicemente refreshare una selectBox dopo aver cancellato un elemento (da una CGridView).

ecco il mio "afterDelete", ovviamente per ora faccio un console.info di test…


					....'class'				=>'CButtonColumn',

					'template'			=>'{view}{update}{delete}',

					'deleteConfirmation'=>'Sicuro di volere eliminare il software selezionato?',

					'afterDelete'		=>"function(link,success,data){

											console.info(link,success,data);}",

					'buttons'			=>array(...

il flusso che mi sarei aspettato, dal momento del click in poi:

[list=1][]click su “delete”[]parte l’eventuale “deleteConfirmation” (e infatti parte)[]cancellazione del record selezionato[]parte “afterDelete” esegue le operazioni che gli vengono impartite, nel mio caso un test di “console.info”[/list]solo che nel mio caso invece l’afterDelete parte al momento del click, perchè?

appena clicco praticamente, parte il “deleteConfirmation” e subito dopo l’“afterDelete”…

infatti nella "function" di afterDelete il "data" è null

inoltre sul button Delete non è impostato ‘click’ ovviamente…

Grazie in anticipo!

aggiungo una info:

possibile che l’afterDelete non funzioni perchè nella mia applicazione,

ogni "delete" in realtà è una cancellazione logica andando a scaturire in un "update" (dove viene impostato un flag cancellato 1/0)

e quindi non c’è una vera e propria cancellazione fisica?

l’afterDelete funziona correttamente. Il problema è che nel tuo caso “data”

è vuoto perchè sicuramente la tua ActionDelete non restituisce niente.

se vuoi un consiglio metti la select che vuoi refreshare in un renderPartial nella view.




<div id="select">

<?php $this->renderPartial('_select',array('model'=>$model)); ?>

</div>



nell’actionDelete fai una cosa del genere, visto che la cancellazione è logica:




if($model->save()){

	echo $this->renderPartial('view/_select',array('model'=>$model),true,true);

}



nell’afterDelete:




'afterDelete'=>'function(link,success,data){ if(success) $("#select").html(data); }',



Grazie st4nny,

leggendo il tuo consiglio ho inserito il print dell’htm della select aggiornato

proprio nell’action che viene chiamata in modo che nella callback refresho il contenuto.

Grazie e alla prossima!