我已在checkbox
内的C#中动态创建了<asp:ContentPlaceHolder>
。我希望在垂直方向排序,并且一次只能在代码后面检查一个框。任何解决方案?
代码:
DataTable table = new DataTable();
table.Columns.Add("Betoption", typeof(string));
table.Columns.Add("id", typeof(string));
table.Rows.Add("Main", "1");
table.Rows.Add("Corner", "2");
table.Rows.Add( "Card & Foul", "3");
table.Rows.Add( "Under / Over", "4");
table.Rows.Add( "Dilantin", "5");
table.Rows.Add( "Home / Away", "6");
table.Rows.Add("First Half", "7");
DataRow[] exemption = table.Select();
foreach (DataRow dr in exemption)
{
string option = dr["Betoption"].ToString();
string optionID = dr["id"].ToString();
var chk = new CheckBox { ID = optionID, Text = option, CssClass = "name", AutoPostBack = true };
PlaceHolder1.Controls.Add(chk);
}
答案 0 :(得分:2)
您可以使用Checkbox
而不是CheckBoxList
来设置RepeatDirection
属性的值,如下所示:
var checkList = new CheckBoxList();
checkList.AutoPostBack = true;
checkList.CssClass = "name";
checkList.RepeatDirection = RepeatDirection.Vertical;
foreach (DataRow dr in exemption)
{
string option = dr["Betoption"].ToString();
string optionID = dr["id"].ToString();
checkList.Items.Add(new ListItem()
{
Text = option,
Value = optionID
});
}
PlaceHolder1.Controls.Add(checkList);
如果您希望一次只检查一个项目,我建议使用RadioButtonList
而不是Checkbox列表。
在上面的代码中,只需将CheckBoxList()
替换为RadioButtonList()