dongyan5641 2013-05-14 05:28
浏览 14
已采纳

还原列和行Yii TbExtendedGridView

I'm displaying a simple table containing two headers 'variable' and 'value', The display would look like:

Variable| Value
entry1| value1
entry2| value2

How do revert the columns and rows to make it look like

Variable  | entry1 | entry2
Value     | value1 | value2

My current code:

$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',
        ),
    ));
  • 写回答

1条回答 默认 最新

  • dongque5529 2013-05-15 05:49
    关注

    Reading the documentation, there isn't one way to change from row to columns or vice and versa.

    YiiBooster Reference

    Class reference of CGridView

    So, what you should do is, create a GridView without header or use the public property of CGridView hideHeader that allow you to hide the headers, anyway, you have to change the data to display with 3 columns instead of 2.

    Change from:

    $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,
    ));
    

    To:

    $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
    ));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
  • ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
  • ¥15 手机接入宽带网线,如何释放宽带全部速度
  • ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
  • ¥15 ETLCloud 处理json多层级问题
  • ¥15 matlab中使用gurobi时报错
  • ¥15 这个主板怎么能扩出一两个sata口
  • ¥15 不是,这到底错哪儿了😭
  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么