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

标签 c# asp.net dataset radio-button

我有一个包含许多项目的数据集,包括“blockID”和“blockName”。 我想填充单选按钮列表,其值将是“blockName”属性,并且我需要它们按“blockID”属性进行分组。即用户只能从每个“blockID”中选择一个“blockName”。 我正在使用 c# 那可能吗? 感谢您的帮助!

最佳答案

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

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

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

您会看到,通过此类,BlockNames 已与单个 block 的 ID 分组。

在您的 ASPX/ASCX 标记中,定义一个 Repeater 并订阅 OnItemDataBound 事件:

<asp:Repeater ID="rptDummy" runat="server" OnItemDataBound="rptDummy_OnItemDataBound">
</asp:Repeater>

OnItemDataBound 事件上,动态添加 RadioButtonLists,其中每个 BlockName 都是不同的 RadioButton,每个 RadioButtonList 都属于不同的 BlockID:

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

绑定(bind)中继器:

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

关于c# - asp.net 从数据集创建单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15183943/

相关文章:

c# - ASP.NET 核心 : calling a view component does not respect authorization attribute

c# - 从 C++ 调用 (C#) .NET Core 方法

asp.net - 如何使用 RenderingMode=List 控制应用于 ASP.NET 4 菜单的 CSS 类

c# - 区域中的 ASP.NET MVC 错误处理

c# - 当 Interop 程序集中未公开函数时,如何在 C# 中的 QuickTime SDK 中为电影设置输出音频设备?

c# - Windows Phone 7 中的 HttpUtility.UrlEncode?

c# - 如何将sql查询存储在变量中

asp.net - 我们可以不用DataAdapter填充DataSet吗?

c# - 将任何 Excel 电子表格导入 DataGridView - C#

javascript - 在 JavaScript 中从列表中的对象获取数据属性