我在 C#.NET 3.5 中以编程方式生成一个单选按钮列表,并使用 aRadioButtonList
来执行此操作。但是,我觉得非常令人沮丧的是该RepeatLayout
属性,它只能设置为Flow
or Table
。
表格用于表格数据,而不是用于显示表格。流动并没有帮助,因为它不适合造型。
我真正想要的是可以用 CSS 处理的 div 嵌套。这可以做到吗?
一些示例来说明我在说什么以及下面的示例代码。
流程示例
<span id="s1">
<input id="s1_0" type="radio" value="Answer A" name="s1">
<label for="s1_0">Answer A</label>
<br>
<input id="s1_1" type="radio" value="Answer B" name="s1">
<label for="s1_1">Answer B</label>
</span>
表格示例
<table border="0" id="s1">
<tbody>
<tr>
<td><input type="radio" value="Answer A" name="s1" id="s1_0"><label for="s1_0">Answer A</label></td>
</tr>
<tr>
<td><input type="radio" value="Answer B" name="s1" id="s1_1"><label for="s1_1">Answer B</label></td>
</tr>
</tbody>
</table>
我真正想要的
<div id="s1">
<div>
<input type="radio" value="Answer A" name="s1" id="s1_0">
<label for="s1_0">Answer A</label>
</div>
<div>
<input type="radio" value="Answer B" name="s1" id="s1_1">
<label for="s1_1">Answer B</label>
</div>
</div>
我用来生成列表的 C# 代码
我知道无论解决方案是什么,都不会像这样快速简单,但我把它放在这里是为了让您了解我使用它的上下文。
RadioButtonList rbl = new RadioButtonList { RepeatLayout = RepeatLayout.Table };
foreach (ControlValue cv in MasterControl.listControlValues)
{
rbl.Items.Add(new ListItem(cv.name, cv.value));
}
ControlContainer.Controls.Add(rbl);