ASP.Net/C#动态生成的单选按钮

ASP.Net/C#动态生成的单选按钮,c#,asp.net,sharepoint-2010,C#,Asp.net,Sharepoint 2010,我正在为SharePoint编写一个小应用程序,我想检查库中工作流的数量,并将它们添加到一个表中,每个表有3个选项-终止、启动和重新启动 如何动态生成n个终止、启动和重新启动单选按钮组(n是库中的工作流),以便我可以遍历每个组以查看为每个工作流选择了哪些功能?在控件的OnInit方法中添加如下代码(每次都必须执行,即使是回发) 受保护的覆盖OnInit(事件参数e) { 对于(int i=0;i

我正在为SharePoint编写一个小应用程序,我想检查库中工作流的数量,并将它们添加到一个表中,每个表有3个选项-终止、启动和重新启动


如何动态生成n个终止、启动和重新启动单选按钮组(n是库中的工作流),以便我可以遍历每个组以查看为每个工作流选择了哪些功能?

在控件的
OnInit
方法中添加如下代码(每次都必须执行,即使是回发)

受保护的覆盖OnInit(事件参数e)
{
对于(int i=0;i<5;i++)
{
var chk=新复选框();
chk.CheckedChanged+=this.CheckBoxChanged;
chk.Text=“chk#”+i.ToString();
chk.ID=“chk_”+i.ToString();
this.Controls.Add(chk);
}
}
受保护的无效复选框已更改(对象发送方、事件参数e)
{
var chk=(复选框)发送方;
var i=int.Parse(chk.ID.SubString(4));
//“i”现在保存更改的复选框的编号。
}
不同控件的事件和属性将发生变化,但整体机制不会发生变化

protected override OnInit(EventArgs e)
{
    for (int i = 0; i < 5; i++)
    {
        var chk = new CheckBox();
        chk.CheckedChanged += this.CheckBoxChanged;
        chk.Text = "CHK#" + i.ToString();
        chk.ID = "chk_" + i.ToString();

        this.Controls.Add(chk);
    }
}

protected void CheckBoxChanged(object sender, EventArgs e)
{
    var chk = (CheckBox)sender;
    var i = int.Parse(chk.ID.SubString(4));
    // "i" now holds the number of the checkbox changed.
}