Gridview中的单选按钮

时间:2013-10-06 19:42:58

标签: c# asp.net gridview webforms

我有一个游戏列表。每场比赛都有一支客队和一支主队。我想允许用户选择访问团队或主队。所以我转换为模板字段并放入单选按钮。但显然这是不对的。我想,我需要一个单选按钮列表。因为只有单选按钮,他们可以选择两者。这是可能的gridview?大多数教程我看到行中只有一个单选按钮,所以这不是问题。这是我的gridview:

<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" DataKeyNames="id_game" DataSourceID="sqlPopulateGames">
    <Columns>
        <asp:BoundField DataField="id_game" HeaderText="id_game" InsertVisible="False" ReadOnly="True" SortExpression="id_game" />
        <asp:TemplateField HeaderText="visitor" SortExpression="visitor">
            <EditItemTemplate>
                <asp:TextBox ID="TextBox1" runat="server" Text='<%# Bind("visitor") %>'></asp:TextBox>
            </EditItemTemplate>
            <ItemTemplate>
                <br />
                <asp:RadioButton ID="RadioButton1" runat="server" Text='<%# Eval("visitor") %>' />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:TemplateField HeaderText="home" SortExpression="home">
            <EditItemTemplate>
                <asp:TextBox ID="TextBox2" runat="server" Text='<%# Bind("home") %>'></asp:TextBox>
            </EditItemTemplate>
            <ItemTemplate>
                <asp:RadioButton ID="RadioButton2" runat="server" Text='<%# Eval("home") %>' />
            </ItemTemplate>
        </asp:TemplateField>
        <asp:BoundField DataField="game_time" HeaderText="game_time" SortExpression="game_time" />
    </Columns>
</asp:GridView>

1 个答案:

答案 0 :(得分:2)

  

因为只有单选按钮,他们可以选择两者。

如果这些单选按钮在标记中分组,则不会。单选按钮设计为互斥,但他们需要知道哪些其他单选按钮是独占的。 ASP.NET中的The GroupName property用于设置它。

这样的事情:

<asp:RadioButton GroupName="SomeGroup" ID="RadioButton1" runat="server" Text='<%# Eval("visitor") %>' />

使用该集合,对于RadioButton设置为GroupName的任何其他"SomeGroup",这将是互斥的。

由于这是在重复控件内发生的,因此您可能希望每次迭代都有一个单独的组。因此,您可以将其绑定到支持数据中的某个值:

<asp:RadioButton GroupName='<%# Eval("someValue") %>' ID="RadioButton1" runat="server" Text='<%# Eval("visitor") %>' />

如果someValue对于结果中的每条记录都是唯一的,那么您最终会得到每行的一组互斥的单选按钮。