我正在显示一个包含两个标题'变量'和'值'的简单表,显示如下:
Variable| Value
entry1| value1
entry2| value2
如何还原列和行使其看起来像
Variable | entry1 | entry2
Value | value1 | value2
我的当前代码:
$this->widget('bootstrap.widgets.TbExtendedGridView', array(
'sortableRows'=>true,
'afterSortableUpdate' => 'js:function(id, position){ console.log("id: "+id+", position:"+position);}',
'type'=>'striped bordered',
'dataProvider' => $dataProvider,
'columns' => array(
array(
'header'=>'Variable',
'name'=>'variable_id',
'value'=>'$data->variable->name',
'filter'=>CHtml::listData(Study::model()->findAll(), 'id', 'variable_name'),
),
'value',
),
));
阅读文档,没有一种方法可以从行更改为列,反之亦然。
YiiBooster参考
CGridView的类引用
所以,你应该做的是,创建一个没有标题的GridView或使用CGridView hideHeader的公共属性,允许你隐藏标题,无论如何,你必须改变数据显示与3列而不是2。
改变:
$data[0][0] = 'entry1';
$data[0][1] = 'value1';
$data[1][0] = 'entry2';
$data[1][1] = 'value2';
$gridDataProvider = new CArrayDataProvider($data);
// $gridColumns with header
$gridColumns = array(
array('name'=>'variable', 'header'=>'Variable'),
array('name'=>'value', 'header'=>'Value'),
);
$this->widget('bootstrap.widgets.TbGridView', array(
'dataProvider'=>$gridDataProvider,
'template'=>"{items}",
'columns'=>$gridColumns,
));
:
$data[0][0] = 'Variable';
$data[0][1] = 'entry1';
$data[0][2] = 'value1';
$data[1][0] = 'Value';
$data[1][1] = 'entry2';
$data[1][2] = 'value2';
$gridDataProvider = new CArrayDataProvider($data);
$this->widget('bootstrap.widgets.TbGridView', array(
'dataProvider'=>$gridDataProvider
));