Bardzo dziwne zachowanie ajaxLink w CGridView

Na stronie mam zawartośc która jest renderowana przez określone widoki za pomocą ajaxLinków umieszczonych w CTreeView. ajaxLinki uruchamiają metode UpdateAjax. Wszystko działa poprawnie. W jednym ‘pudełku’ ładowanej zawartości znajduje się tabela CGridView. W jednej z jej kolumn umieściłem ajaxLinki, które po kliknięciu powinny zmieniać zawarośc diva poniżej za pomocą metody UpdateDiv. Gdy klikam w któregokolwiek linka z tabeli zmienia się główna zawartość zamiast diva, tak jakby uruchamiana była metoda UpdateAjax a nie UpdateDiv. Z tego co zaobserwowałem div zmienia się na ułamek sekundy poczym zmienia się główna zawartość i to o jakieś “losowo” wybrane widoki…??

UpdateAjax




public function actionUpdateAjax()

    {

        if(Yii::app()->request->isAjaxRequest && isset($_GET['idJednostki']))

        {

                $data = array();

                $id = $_GET['idJednostki'];

                

                $data['dInformacje'] = Jednostki::model()->findByPk($id);

                

                        

                $this->renderPartial('_ajaxContent', $data, false, true);

                

        }

    }



UpdateDiv




public function actionUpdateDiv(){

                if(Yii::app()->request->isAjaxRequest && isset($_GET['strId'])){

                        

                        $data['dStr'] = Str::model()->findByPk($_GET['strId']);

                        

                        $this->renderPartial('_strInfo',$data,false,true);

                }

        }



Głowny widok




<div id="content-jednostki">


        <?php echo $this->renderPartial('_ajaxContent',array(

                                'dInformacje'=>$dInformacje,

                        )); 

        ?>

</div>



Widok z CGridView





<div id="table">

<?php 


$this->widget('zii.widgets.grid.CGridView', array(

        'id'=>'u-grid',

        'dataProvider'=>$dInformacje,

        'filter'=>new Informacje,

        'columns'=>array(

                'id',

                'name',

                'field',

                array(

                    'class'=>'myAjaxLinkColumn',

                ),

           

                

        ),

)); 


?>


</div>

<div class="str-info" >

<?php 

        

        $this->renderPartial('_strInfo');

)); ?>

</div>



Do wyrenderowania ajax linków posłużyłem się klasą:




class myAjaxLinkColumn extends CLinkColumn

{


        protected function renderDataCellContent($row,$data)

        {

                

            echo CHtml::ajaxLink('view', Yii::app()->getUrlManager()->createUrl('sis/UpdateDiv'), array('data'=>array('strId'=>'7'), 'update'=>'.str-info'));

        }

}



Próbowałem jeszcze z CButtonColumn. Efekt ten sam. Dlaczego uruchamia metode AjaxUpdate. Dzieje się tak nawet jak kompletnie usunę metodę UpdateDiv.

Pomocy, już dzień zmarnowałem żeby to rozwiązać i nic.

Temat rozwiązany, ta sama sytuacja co w poście poprzednim (http://www.yiiframework.com/forum/index.php?/topic/10953-ajax-ladowanie-zawartosci/), ajax nie renderował obsługi zdarzenia do nowego ajaxLinka.

Rozwiązanie gadd33 z postu poprzedniego idealnie załatwiło sprawę. Temat zamknięty