【问题标题】:Select a row in GridView with RadioButton使用 RadioButton 在 GridView 中选择一行
【发布时间】:2011-06-17 10:34:08
【问题描述】:

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

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

如何使用 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>

【问题讨论】:

  • CommandArgumento ?是葡萄牙语吗?
  • 是的,我写错了,对不起!
  • 啊哈,我们所做的是将 readibutton 重建为自定义控件并通过 IButtonControl 和 IPostBackEventHandler 接口实现 CommandEvent 和 Commandargument ;)
  • ahaha,还有其他更简单的解决方案吗?呵呵.. .也许一些 javascript 做一些必要的事情?

标签: asp.net gridview webforms radio-button


【解决方案1】:

改用ImageButton 控件。使用选中或未选中的单选按钮图像作为ImageUrl,并且由于单击按钮会创建回发,因此请为单击的按钮设置正确的ImageUrl。您可以通过单选按钮的外观获得按钮的所有功能。

--值得一试

编辑

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

默认.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>

默认.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";
        }
    }
}

我希望这可以帮助您实现目标。

【讨论】:

  • 戴夫,你有样品要展示吗?网上有文章吗?谢谢!
  • 谢谢@DaveB,我用复选框解决了我的问题,做一个foreach循环确实取消选中其他复选框不在CurrentRow中。但我会为您设计解决方案!谢谢!
猜你喜欢
  • 2012-05-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-11-10
  • 1970-01-01
  • 2015-11-11
  • 1970-01-01
相关资源
最近更新 更多