Search code examples
c#asp.netgridviewradiobuttonlist

RadioButtonList loses value on button Click


I have a RadioButtonList in the dataItemTemplate of the ASPX GridView. I want the selected index for each RadioButtonList on the ButtonClick event. On the button click event the selectedIndex for the radioButton list is -1. How do I make my RadioList remember the user selected values in the button click event.

EnableCallbacks for grid is true

Enableviewstate for grid is true

AutoPostBack for RadioList is false.

<DataItemTemplate>
    <dxe:ASPxRadioButtonList ID="m_RadioList" runat="server" 
        Border-BorderStyle="None" ClientInstanceName="RadioList" 
        OnInit="OnRadioListInit">
        <Border BorderStyle="None" />
        <Items>
            <dxe:ListEditItem Text="M" Value="0" />
            <dxe:ListEditItem Text="F" Value="1" />
            <dxe:ListEditItem Text="NA" Value="2" />
        </Items>
    </dxe:ASPxRadioButtonList>
</DataItemTemplate>


protected void OnASPxButtonClick(object sender, EventArgs e)
{
    for (int row = 0; row < m_ASPxGridView.VisibleRowCount; row++)
    {
        ASPxRadioButtonList radio = m_AccessPoint_UsersASPxGridView.FindRowCellTemplateControl(row,null, "m_RadioList") as ASPxRadioButtonList;

        int r = (int) radio.SelectedIndex;
    }
}

Solution

  • Your grid might bind again in your page load, and that's why your radiobuttonlist also bound again, and you are losing your selected value. Make sure you bind under if(!Page.IsPostBack) in your page load.