Một cách là:
'columns'=>array(
array(
'name'=>'columnName',
'visible'=>false
),
)
Vì vậy, bạn cần phải điều chỉnh các thuộc tính hiển thị động:
'visible'=>$this->checkVisible() //custom function
sth như thế này tùy thuộc vào yêu cầu của bạn
Sửa (sử dụng ajax + jquery)
dụ: views/người dùng/admin.php
.....
.....
<?php
$toggleUDetails = <<<JS
$('a.toggle').live('click',function(e){
e.preventDefault();
if(this.href.split('#')[1]=='loaded') return $(this).closest("tr").next('tr.toggle').toggle();
trow=$(this).closest("tr");
var ajaxOpts={type:"POST", url:this.href ,dataType:'json',success:function(data){
$(trow).after(data.row);
}
};
this.href=this.href+'#loaded';
$.ajax(ajaxOpts);
});
JS;
Yii::app()->clientScript->registerScript('toggleUD', $toggleUDetails, CClientScript::POS_READY);
$this->widget('zii.widgets.grid.CGridView', array(
'id'=>'user-grid',
'dataProvider'=>$model->search(),
'filter'=>$model,
'columns'=>array(
array(
'class'=>'CButtonColumn',
'header'=>'Toggle Details',
'template'=>'{toggle}',
'buttons'=>array(
'toggle'=>array(
'label'=>'Details',
'imageUrl'=>Yii::app()->request->baseUrl.'/images/expand.png',
'url'=>'Yii::app()->createUrl("user/getExtra", array("id"=>$data->id))',
'options'=>array('class'=>'toggle',
),
),
),
),
'id',
'username',
'password',
'email',
array(
'class'=>'CButtonColumn',
),
),
)); ?>
tài điều khiển
public function actionGetExtra($id){
$model=User::model()->findByPk($id);
echo json_encode(array('row'=> '<tr class="toggle"><td colspan="6">'. $model->username.'</td></tr>'));
}
Enable quyền truy cập:
array('allow', // allow authenticated user to perform 'create' and 'update' actions
'actions'=>array('create','update','getExtra'),
'users'=>array('@'),
),
rằng có rất nhiều tôi có thể làm bạn. Hãy nhớ để thay đổi chức năng Java script để chuyển sang biểu tượng hình ảnh tôi đã không làm điều đó
Nhưng tôi muốn thể hiện nó khi nào, tôi chọn hoặc chuyển đổi một số nút trong mỗi hàng .. –
không đòi hỏi yêu cầu ajax để máy chủ hoặc bạn muốn làm ở phía khách hàng? Trong hàm checkVisbile(), bạn đặt logic khi làm cho trường hiển thị. Khi bạn nói "chọn hoặc chuyển đổi" tôi giả định rằng nó liên quan đến yêu cầu ajax – sakhunzai
Không, tôi muốn ẩn nó trong tài liệu .. (no ajax) –