我在一列中打印了复选框列表,但我需要它在列中打印,并且每列中应该例如 10 个复选框。我的 php 代码:
//$user_cats- array of categories.
echo CHtml::activecheckBoxList($categories,
'selected['.$parent->id.']',
CHtml::listData(
$user_cats,
'id',
'title',
''
));
也许有没有办法修改 CHtml::listData 它可以在列中打印复选框?
我会做这样的事情:
CHtml::activecheckBoxList($categories,
'selected['.$parent->id.']',
CHtml::listData(
$user_cats,
'id',
'title',
), array('separator'=>'',
'template'=>'<span class="checkbox-columns">{input} {label}</span>'),
);
然后在我的 CSS 中,如下所示:
span.checkbox-columns {
float:left;
width: 20%;
}
根据需要调整 CSS,主要是宽度百分比。
首先CHtml::listData
生成一个适合用于activeCheckboxList
、dropdownlist
等的数据集。
现在,如果要更改复选框在页面上的显示方式,则需要将htmlOptions数组传递给activeCheckBoxList
。你可以在Yii activeCheckBoxList上阅读更多关于它的信息
例如:
CHtml::activecheckBoxList($categories,
'selected['.$parent->id.']',
CHtml::listData(
$user_cats,
'id',
'title',
), array('separator'=>'--')
);
因此,默认情况下,如果您不指定分隔符,它将使用换行符,但如果您提供它,它将使用该分隔符。此外,如果您想添加更多样式或更好地格式化复选框,您也可以这样做。只需阅读文档,链接包含在上面。通过为 htmlOptions
数组指定其他选项,这一切都可以实现。