我有一个页面,其中包含一个带有LinkButton的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>
答案 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";
}
}
}
我希望这有助于您实现目标。