C# asp.net从数据集创建单选按钮

C# asp.net从数据集创建单选按钮,c#,asp.net,dataset,radio-button,C#,Asp.net,Dataset,Radio Button,我有一个包含许多项的数据集,包括“blockID”和“blockName”。 我想填充RadioButtonList,它们的值将是“blockName”属性,我需要它们按“blockID”属性分组。i、 e.用户只能从每个“blockID”中选择一个“blockName”。 我用的是c# 可能吗? 谢谢你的帮助 是的,这是可能的。我在下面举了一个例子,我知道这不是一个数据集,但仍然是一个很好的例子,说明了如何做到这一点。对于这个结构,仍然可以从数据集映射,因为在我看来,这会让事情变得更容易 给定

我有一个包含许多项的数据集,包括“blockID”和“blockName”。 我想填充RadioButtonList,它们的值将是“blockName”属性,我需要它们按“blockID”属性分组。i、 e.用户只能从每个“blockID”中选择一个“blockName”。 我用的是c# 可能吗?
谢谢你的帮助

是的,这是可能的。我在下面举了一个例子,我知道这不是一个数据集,但仍然是一个很好的例子,说明了如何做到这一点。对于这个结构,仍然可以从数据集映射,因为在我看来,这会让事情变得更容易

给定数据源项的以下块类:

public class Block
{
    public int ID { get; set; }
    public List<string> BlockNames { get; set; }

    public Block(int id, params string[] names)
    {
        ID = id;
        BlockNames = new List<string>();
        foreach (var item in names)
        {
            BlockNames.Add(item);
        }
    }
}
OnItemDataBound
事件中,动态添加
RadioButtonList
,每个区块名称都是不同的RadioButton,每个
RadioButtonList
都是不同的区块ID:

protected void rptDummy_OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
    if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
    {
        Block blk = (Block)e.Item.DataItem;
        RadioButtonList list = new RadioButtonList();
        list.ID = "rblBlocks";
        list.Attributes.Add("BlockID", blk.ID.ToString());

        foreach (string item in blk.BlockNames)
        {
            list.Items.Add(new ListItem(item, item));
        }

        e.Item.Controls.Add(list);
    }
}
绑定中继器:

List<Block> blocks = new List<Block>();

blocks.Add(new Block(1, "BlockName1", "BlockName2", "BlockName3"));
blocks.Add(new Block(2, "BlockName4", "BlockName5"));
blocks.Add(new Block(3, "BlockName6"));

rptDummy.DataSource = blocks;
rptDummy.DataBind();
列表块=新列表();
块。添加(新块(1,“块名1”、“块名2”、“块名3”);
块。添加(新块(2,“块名4”、“块名5”);
块。添加(新块(3,“块名6”);
rptdumy.DataSource=块;
rptmdummy.DataBind();

非常感谢您的回复。有一件事我想我没有解释清楚,我提到的“块”在数据库中,我们使用一个过程从数据库中获取它。这些过程向我们返回一个数据集。该数据集包含许多“blockID”和“blockName”,我们必须根据“blockID”将它们分成单选按钮组,非常感谢!是的,我的回答涵盖了许多blockid和与之相关的许多blockname的场景。我知道您没有我使用的数据结构,但是您可以将您拥有的
数据集
转换为所使用的
对象的
列表
。正如我所说,这是一个很好的选择,你想要什么。好吧,我现在看到了!非常感谢你!
List<Block> blocks = new List<Block>();

blocks.Add(new Block(1, "BlockName1", "BlockName2", "BlockName3"));
blocks.Add(new Block(2, "BlockName4", "BlockName5"));
blocks.Add(new Block(3, "BlockName6"));

rptDummy.DataSource = blocks;
rptDummy.DataBind();