我正在尝试更改我的GridView列宽。这是我的代码:
<?php $this->widget('zii.widgets.grid.CGridView', array(
'id' => 'prefixs-grid',
'dataProvider' => $model->search(),
'filter' => $model,
'columns' => array(
array(
'name' => 'id',
'header' => 'No.',
'htmlOptions' => array('class' => 'center'),
),
array(
'name' => 'pfx',
'htmlOptions' => array('width' => 30),
),
array(
'class' => 'CButtonColumn',
),
),
)); ?>
当我跑步&#39; pfx&#39;列宽必须更改为30,但宽度相同。我怎么能改变列的宽度?有什么想法吗?
答案 0 :(得分:6)
如果您不想使用单独的CSS定义,则应执行以下操作:
'htmlOptions' => array('style' => 'width: 30px;'),
'filterHtmlOptions' => array('style' => 'width: 30px;'),
答案 1 :(得分:1)
'columns' => [
[
'headerOptions' => ['width' => '150'],
'attribute' => 'name',
'format' => 'raw',
'value' => 'name'
],
]
答案 2 :(得分:0)
我注意到标签中的cgridview有一个id属性id="table-name_c0" id="table-name_c1"
等等你可以挂钩到这个和.filters
类的过滤器宽度。 e.g。
#table-name table-name_c0 {
width: 30px;
}
#table-name .filters:nth(0) {
width:30px;
}
其中c0和:nth(0)是相同的数字。 它有点hacky但你想要实现的也是有点hacky imho
答案 3 :(得分:0)
有多种方法可以解决这个问题。
您可以加宽单元格的内容(单个行的单元格):
$columns[] = array(
'header'=>'Name',
'value'=>'$data["name"]',
'htmlOptions'=>array('style'=>'width: 150px')
);
有时您可能想要扩大列标题而不是单个行的单元格:
$columns[] = array(
'header'=>'Name',
'value'=>'$data["name"]',
'headerHtmlOptions'=>array('style'=>'width: 150px')
);
扩展标题是首选选项,但即使您这样做,有时也无法按预期工作。
如果是这种情况,您可以采用我个人喜欢的方式并扩大标题单元格的内容。扩展也将由它下面的行继承。
$columns[] = array(
'header'=>'<div style="width:150px;">Name</div>',
'value'=>'$data["name"]',
);
答案 4 :(得分:0)
只需添加
'contentOptions' =>['style' => 'width:30px'],
- 例如:
'columns' => [
[
'attribute' => 'product.name',
'contentOptions' =>['style' => 'width:30px'],
],
这应该可以做到!