使用 asp.net 在 c# 中动态创建的复选框垂直显示

dynamically created checkbox in c# using asp.net show vertically

我在 <asp:ContentPlaceHolder> 中用 C# 动态创建了 checkbox。我希望垂直排序,并且在后面的代码中一次只检查一个框。有什么解决办法吗?

代码:

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);

} 

您可以使用 CheckBoxList 代替 Checkbox 并设置 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 而不是复选框列表。

在上面的代码中,只需将 CheckBoxList() 替换为 RadioButtonList()