使用C#从SQL Server中的单个表在ASP.NET中创建多个RadioButtonLists

时间:2010-11-11 00:18:00

标签: c# asp.net sql sql-server

我想使用ASP.net,C#和SQL来显示带有下面的单选按钮的游戏列表(x是收音机)。每个游戏都可以选择一个团队。

游戏1:x队4 x队2 游戏2:x队6 x队1 游戏3:x团队5 x团队3

游戏列表存储在SQL数据库的表中。到目前为止,我可以将所有团队拉成一个大的RadioButtonList。我无法弄清楚如何从这个单一的游戏桌创建多个RadioButtonList控件。有谁知道如何实现这一点 - 或者参考完成这样的事情的示例/教程?

1 个答案:

答案 0 :(得分:2)

使用列表视图查看项目的不同游戏和radiobuttonlist

像这样的

<asp:ListView ID="ListView1" runat="server" onitemdatabound="ListView1_ItemDataBound">
    <ItemTemplate>
        <asp:Label runat="server" ID="txtGame" Text='<%# Bind("GameName") %>'></asp:Label><br />
        <asp:HiddenField ID="hdnGameID" runat="server" Value='<%# Bind("GameID") %>'/>
        <asp:RadioButtonList runat="server" ID="rblTeam" DataTextField="TeamName" DataValueField="TeamID">
        </asp:RadioButtonList>
    </ItemTemplate>
</asp:ListView>

然后在你的代码背后

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        var oGame = from g in myDB.Game
                    group g by g.GameName into result
                    select new { GameID = result.Key, GameName = result };

        ListView1.DataSource = oGame;
        ListView1.DataBind();
    }
}

protected void ListView1_ItemDataBound(object sender, ListViewItemEventArgs e)
{
    HiddenField hdnGameID = (HiddenField)e.Item.FindControl("hdnGameID");
    RadioButtonList rblTeam = (RadioButtonList)e.Item.FindControl("rblTeam");

    var oTeam = from t in myDB.Game
                where t.GameID == hdnGameID.Value
                select t;

    rblTeam.DataSource = oTeam;
    rblTeam.DataBind();
}