使用RadioButton在GridView中选择一行

时间:2011-01-28 18:40:49

标签: asp.net gridview webforms radio-button

我有一个页面,其中包含一个带有LinkBut​​ton的GridView,在模板列中选择一行。

<asp:LinkButton runat="server" CommandName="Selecionar" CommandArgumento='<%# Eval("Id") %>'>

如何使用RadioButton执行此操作?我想这样当用户选择radiobutton时,我的网格将执行RowCommandEvent。有没有办法实现这个目标?

由于

编辑

<asp:TemplateField HeaderStyle-Width="10%" ItemStyle-Height="30px">
<ItemTemplate>

<%-- It works with a linkbutton -->
<asp:LinkButton ID="lnkSelecionar" runat="server" Text="Selecionar" CommandName="Select" CommandArgument='<%# Eval("Id") %>' Visible="true"></asp:LinkButton>

<%-- i need a RadioButton =/  --%>
<asp:RadioButton ID="radioRole" runat="server" CommandName="Select" CommandArgument='<%# Eval("Id") %>' AutoPostBack="true" GroupName="Role" />

</ItemTemplate>
</asp:TemplateField>

1 个答案:

答案 0 :(得分:1)

改为使用ImageButton控件。使用单选按钮或未选择图像作为ImageUrl,并且由于按钮单击正在创建回发,请设置单击按钮的正确ImageUrl。您可以获得具有无线电按钮外观的按钮的所有功能。

- 值得一试

修改

我编写了一些示例代码。有两个图像。 radioButtonOn.gif和radioButtonOFF.gif。以下是重要部分:

Default.aspx的

<asp:GridView ID="gvItems" runat="server" AutoGenerateColumns="false" 
    OnRowCommand="gvItems_RowCommand">
    <Columns>
        <asp:ButtonField ButtonType="Image" ImageUrl="~/radioButtonOFF.gif" CommandName="ibtnRadio" />
        <asp:BoundField HeaderText="Item" DataField="Name" />
    </Columns>
</asp:GridView>

Default.aspx.cs

 protected void gvItems_RowCommand(object sender, GridViewCommandEventArgs e)
{

    if (e.CommandName == "ibtnRadio")
    {
        int rowIndex = int.Parse(e.CommandArgument.ToString());
        GridViewRow gvr = gvItems.Rows[rowIndex];
        ImageButton ib = gvr.Cells[0].Controls[0] as ImageButton;
        if (ib != null)
        {
            ib.ImageUrl = "~/radioButtonOn.gif";
        }
    }
}

我希望这有助于您实现目标。