我在一列中打印了复选框列表,但是我需要它在列中打印,并且在每列中应该是例如10个复选框。 我的PHP代码:
//$user_cats- array of categories.
echo CHtml::activecheckBoxList($categories,
'selected['.$parent->id.']',
CHtml::listData(
$user_cats,
'id',
'title',
''
));
也许有一种方法可以修改CHtml :: listData它可以在列中打印复选框吗?
答案 0 :(得分:2)
我会做这样的事情:
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,主要是宽度百分比。
答案 1 :(得分:1)
第一件事CHtml::listData
生成的数据集适合在activeCheckboxList
,dropdownlist
等中使用。
现在,如果要更改页面上复选框的显示方式,则需要将htmlOptions数组传递给activeCheckBoxList
。
您可以在Yii activeCheckBoxList
例如:
CHtml::activecheckBoxList($categories,
'selected['.$parent->id.']',
CHtml::listData(
$user_cats,
'id',
'title',
), array('separator'=>'--')
);
因此,默认情况下,如果您未指定分隔符,则使用换行符,但如果您提供换行符,则会使用该分隔符。
此外,如果您想要添加更多样式或格式化复选框,您也可以做得更好。只需阅读文档,链接包含在上面。通过为htmlOptions
数组指定其他选项,可以实现所有这些功能。