Выберите строку в GridView с помощью RadioButton - PullRequest
1 голос
/ 28 января 2011

У меня есть страница, которая содержит GridView с LinkButton, в столбце шаблона, который выбирает строку.

<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>

1 Ответ

1 голос
/ 28 января 2011

Используйте взамен 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";
        }
    }
}

Надеюсь, это поможет вам достичь вашей цели.

...