CJuiDialog und Pagination scheitert

Hallo zusammen,

ich habe ein kleines Problem mit dem jQuery Dialog:

Wenn ich meine Startseite aufrufe, wird eine blätterbare Seite mit Nachrichten präsentiert.

Auf der ersten Seite macht Dialog genau was es soll: Es versteckt die Nachrichteninhalte und jede einzelne Nachricht kann man mit einem Link aufrufen, woraufhin in einem Dialof-Fenster der Nachrichteninhalt zu sehen ist.

Wunderbar!

Aber: Sobald ich unten auf Seite 2 wechsel, werden nunmehr alle Nachrichteninhalte vollständig angezeigt, CJuiDialog "versteckt" selbige nicht mehr, wie auf Seite 1. Wechsel ich zurück auf Seite 1 bleibt der Fehler bestehen.

Mir ist klar, dass ich die Angaben für ‘id’ und auch beim ‘onclick’ im Link serialisieren muss. Also habe ich von Anfang an folgendes in meiner View untergebracht:




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

    'id'=>$data->LFNR,

    // additional javascript options for the dialog plugin

    'options'=>array(

        'title'=>substr($data->UEBSCHRIFT,0,100)."...",

        'autoOpen'=>false,

		'width'=>'auto',

		'modal'=>'true',

    ),

));


    echo "<pre>".CHtml::encode($data->TEXT)."</pre>";


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


// the link that may open the dialog

echo CHtml::link('[mehr]', '#', array(

   'onclick'=>'$("#'. $data->LFNR .'").dialog("open"); return false;',



Und wie beschrieben, funktioniert das auch auf der ersten Seite.

Nur auf den darauffolgenden geht das schief, weil das JavaScript irgendwo nicht mehr richtig ausgewertet wird.

Auf den nachfolgenden Seiten werden sehr wohl die <a> Tags mit den entsprechenden IDs zusammengebaut. Auch in den dann sichtbaren <div> steht die korrespondierende Nummer des Artikels, wie auch auf Seite 1, bzw. der Startseite.

Ich habe mir mit FB mal die geladenen <script>'s angeschaut und zumindest vom Namen her werden immer die gleichen jQuery Skripte angezogen.

Vielleicht weiss da jemand einen Rat.

Vielen Dank und viele Grüße

Ralf

Eine Sache ist mir noch aufgefallen:

Wenn man die Seite wechselt, dann zieht yii scheinbar ein zusätzliches <div> mit der id=yw0 und der class=list-view ein. Davon gibt es dann laut Firebug zwei, die ineinander gekapselt sind.

Seltsamerweise sehe ich das nur in Firebug, jedoch nicht im Quelltext, wenn ich mir den über den Browser anzeigen lasse.

Innerhalb des <div> mit der id=yw0 findet sich dann auch ein div mit dem title=’/yii/t1/index.php?r=tickermeldung%2Findex&TickerMeldung_page=2&ajax=yw0’

Man beachte das &ajax=yw0 - falls das in diesem Zusammenhang wichtig sein sollte.

Kann man hier irgendwo steuernd eingreifen?

Ich konnte das Problem lösen, auch wenn ich nicht sicher bin, ob das die beste Lösung ist:

In der index.php des entsprechenden Controller wird das Widget CListView aufgerufen.

Diesem Widget musste ich die Option




'ajaxUpdate'=>false,



mitgeben, damit mir Dialog nicht kaputt gehauen wird.