Hi all,
I just have started to work with Yii and I like the framework very much.
By now I have finished my Project to 99% but now I figured out a problem. After hours of searching and found some help, I just cannot figure out how to fix the problem.
I hope you could help me finishing my Problem.
Problem:
I have a GridView with a CButtonColumn with Ajax Buttons. They GridView uses Pagination and on the first page everything works fine but on all the other pages the ajax requests won’t work. I looked close at the Ajax-Response and the Javascript for the “new” Buttons is rendered fine but the Buttons won’t work. In many posts I read about the problem but could not figure out how to solve the issue.
I can reproduce the problem in 2 different situations. The 1st: a Gridview loaded via a non-Ajax request and after Pagination the Buttons won’t work. The 2nd: A Gridview is loaded in a Jui-Dialog and the Buttons work only on the first page.
Here is the code for the Gridview in the 1st Situation:
$this->widget('zii.widgets.grid.CGridView', array(
        'id'=>'grid-test',
        'ajaxUpdate'=>'Screenigs',
        'ajaxUrl' => $this->createUrl('/teacher/showScreenings',array('own'=>$own)),
        'dataProvider'=>$data_provider,  //model-searchfunction
        'filter'=>$Screening,
        'template'=>'{summary}{items}{pager}',
        'filterPosition'=>'footer',
        'emptyText'=>'Keine Screenings vorhanden', 
        'selectableRows'=>'0',
        'loadingCssClass'=>'loading',
                'columns'=>array(
                            array(
                                'name' =>'title',
                                'header' =>'Titel',
                            ), 
                            array(
                                'name' =>'grade',
                                'header' =>'Schulstufe',
                            ), 
                            array(
                                'name' =>'AuthorName',
                            ), 
                            array(
                                'name' =>'CreateDate',
                                'header' =>'Erstellt am',
                            ),
                           array
                                (
                                    'class'=>'CButtonColumn',
                                    'template'=>'{show}{deploy}{edit}{drop}',
                                    'deleteButtonUrl'=>"Yii::app()->createUrl('teacher/DeleteScreening',array('ScreeningID'=>\$data->id,'AuthorID'=>Yii::app()->user->id,
                                    'return_to_own'=>$own))",
                                    'buttons'=>array
                                    (
                                        'show' => array
                                        (
                                            'label'=>'Screening anzeigen',
                                            'imageUrl'=>Yii::app()->request->baseUrl.'/images/view.png',
                                            'url'=>"Yii::app()->createUrl('/teacher/viewScreening',array('id'=>\$data->id,'return_to_own'=>$own))",
                                            'visible'=>'true',
                                            'options'=>array('id'=>'view-button-'. uniqid(),
                                                             'title'=>'Anzeigen',
                                                             'ajax'=>array(
                                                                            'type'=>'GET',
                                                                            'url'=>"js:$(this).attr('href')",
                                                                            'update'=>'#ViewDialog',
                                                                            'beforeSend' => 'function(){$("#content").addClass("loading");}',
                                                                            'complete' => 'function(){ $("#content").removeClass("loading");}',   
                                                             ),
                                                ),
                                        ),
                                         'deploy' => array
                                        (
                                            'label'=>'deploy',
                                            'url'=>"Yii::app()->createUrl('/teacher/distributeScreening',array('ScreeningID'=>\$data->id,'return_to_own'=>$own))",
                                            'imageUrl'=>Yii::app()->request->baseUrl.'/images/deploy.png',
                                            'visible'=>'true',
                                            'options'=>array('id'=>'deploy-button-'. uniqid(),
                                                             'title'=>'Bereitstellen',
                                                             'ajax'=>array(
                                                                            'type'=>'GET',
                                                                            'url'=>"js:$(this).attr('href')",
                                                                            'update'=>'#DistDialog',
                                                                            'beforeSend' => 'function(){$("#content").addClass("loading");}',
                                                                            'complete' => 'function(){ $("#content").removeClass("loading");}',   
                                                             ),
                                             ),
                                        ),
                                        'edit' => array
                                        (
                                            'label'=>'edit',
                                            'url'=>"Yii::app()->createUrl('teacher/UpdateScreening',array('id'=>\$data->id,'return_to_own'=>$own))",
                                            'imageUrl'=>Yii::app()->request->baseUrl.'/images/update.png',
                                            'visible'=>'(Yii::app()->user->id == $data->AuthorID)',
                                            'options'=>array('id'=>'edit-button-'.  uniqid(),
                                                            'title'=>'Bearbeiten'),
                                        ),
                                        'drop' => array
                                        (
                                            'label'=>'drop',
                                            'visible'=>'(Yii::app()->user->id == $data->AuthorID)',
                                            'url'=>"Yii::app()->createUrl('teacher/DeleteScreening',array('ScreeningID'=>\$data->id,'AuthorID'=>Yii::app()->user->id,
                                                        'return_to_own'=>$own))",
                                            'click'=>'function(){var confirmed = confirm("Wirklich?"); return confirmed;}', 
                                            'imageUrl'=>Yii::app()->request->baseUrl.'/images/delete.png',
                                             'options'=>array('id'=>'del-button-'.  uniqid(),
                                                            'title'=>'Löschen'),
                                            
                                        )
                                        
                                    ),
                                ),
        ),
    ));
I am using Yii 1.1.12.
Thank you for your help! And sorry I know that this question was asked several times, but i could not figure out how to solve the Problem…
regards, Paul