CListView mittels Ajax aktualisieren

Hallo zusammen,

ich habe eine Weile englischsprachige Threads durchflöht und versucht, nachzuvollziehen, aber das funktionierte nicht so richtig.

Was ich gerne möchte:

Wir haben eine Anwendung, in der man Dinge suchen kann. Die Suchergebnisse werden mit CListeView angezeigt. Das funktioniert soweit alles sehr schön, bis auf einen Schönheitsfehler:

Bei jeder Suche, die man abfeuert, wird die ganze Seite neu geladen.

Aber eigentlich möchte ich nur den CListView Teil neu laden lassen.

Bisher ist unser Aufbau so:

Im Controller wird mit $this->render(); eine index-View gerendert.

In dieser index-View lebt das CListView Widget, welches seinerseits die itemViews rendert.

Ich bekomme es nicht ganz auseinander gepult, ob und wie ich das rendern so umgestalten kann, dass nur der CListView Teil neu ins DOM geladen wird. Ist da renderPartial mein Freund? Kann ich da auf jQuery-Funktionen aus dem Yii-jQuery Fundus schöpfen?

Vielleicht kann jemand dem alten Mann über die Straße helfen :slight_smile:

Vielen Dank und viele Grüße

Ralf

Wie du schon sagst verwende bei einem Ajax Request renderPartial. Und zwar am besten einen eigenen View in dem wirklich nur der CListView enthalten ist.

Also zusammengefasst im Controller:

Suche durchführen (und was sonst noch alles getan werden muss)

und wenn ajax request dann




$this->renderPartial('_listview', array(

	'variablen' => $variablen,

));



Wenn du die Yii-eigenen Filtermethoden verwendest müsste es das gewesen sein.

vielleicht hilft das:

http://www.yiiframework.com/wiki/163/avoiding-rendering-entire-page-when-using-cgridview-via-ajax/