使用asp.net show垂直地在c#中动态创建复选框

时间:2016-06-27 07:49:25

标签: c# asp.net checkbox vertical-alignment contentplaceholder

我已在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);

} 

1 个答案:

答案 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()

即可