Как поставить галочку в cgridview?

В: как поставить галочку в cgridview?

Статус: я сделал просмотр сетки с флажком. но я не знаю, как предварительно установить флажок. $current_reviewers — это массив. Я хотел бы сопоставить $current_reviewers и флажок для предварительной проверки в gridview.

<?php $this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'acc-recei-grid',
    'dataProvider'=>$model->search_reviewerlist(),
    'filter'=>$model,
    'columns'=>array(
        array(
            'class' => 'CCheckBoxColumn',
            'selectableRows' => 2,
            'checkBoxHtmlOptions' => array(
                'name' => 'userids[]',
            ),
            'value'=>'$data->id',
            'checked'=>'(in_array($data->id, $current_reviewers) ? 1 : ""',
         ),
        'username',
        array(
            'type'=>'raw',
            'value'=>'$data->id',
            //'filter'=>array('style'=>'visible:none'), 
            //'headerHtmlOptions'=>array('style'=>'width:0px; display:none; border:none; textdecoration:none'),
            'htmlOptions'=>array('style'=>'display:none; border:none;', 'class'=>'user-id'),  
            //'header'=>false,
            //'filter'=>false,
        ),

    ),
)); ?>

person Thu Ra    schedule 22.10.2012    source источник
comment
Спасибо, что помогаешь мне, Вибхадж. $current_reviewers — это массив. но я могу решить проблему с bool.dev. Благодарим Вас за отправку исправленного варианта.   -  person Thu Ra    schedule 22.10.2012


Ответы (2)


Проблема заключается в переменной $current_reviewers, она недоступна в выражении php, которое передается как значение checked. Для этого вы можете использовать анонимную функцию, а для использования внешней переменной используйте ключевое слово use:

'checked'=>function($data, $row) use ($current_reviewers){
                return in_array($data->id, $current_reviewers);
}

Проверьте использование useключевое слово.

person bool.dev    schedule 22.10.2012

Попробуй это:

array(
            'id'=>'id',
            'class'=>'CCheckBoxColumn',
            'selectableRows' => '50',   
            'checked'=>'($data->id==$current_reviewers)?(1):(0)',   

        ),
person VibhaJ    schedule 22.10.2012