Search code examples
c#asp.netwebformsdevexpress

accessing radiobuttonList from a method defined in edit form of grid view


I have a radio button inside the gridview edit form

<dx:GridViewDataTextColumn Visible="false" Caption='Report List'>
 <EditFormSettings VisibleIndex="10" Visible="false" />
 <EditItemTemplate>
     <dx:ASPxRadioButtonList ID="radioButLst2" runat="server" RepeatDirection="Horizontal">
         <Items>
             <dx:ListEditItem  Text="Opt1" Value="0" Selected="true" />
             <dx:ListEditItem Text="Opt2" Value="1" Selected="false" />
         </Items>
     </dx:ASPxRadioButtonList>
    </EditItemTemplate>
</dx:GridViewDataTextColumn>

and a button inside gridview edit form too

 <dx:GridViewDataTextColumn Visible="false" Caption="">
 <EditFormSettings VisibleIndex="2" Visible="true" />
 <EditItemTemplate>
     <dx:ASPxButton ID="ButID"  runat="server" RenderMode="Link"             
         Text="Options"
         OnClick="Options_Click" AutoPostBack="false" />
 </EditItemTemplate>
</dx:GridViewDataTextColumn>

I can not access radioButLst2 from Options_Click method, I have tried these

 ASPxGridView gridView = myGrid;
 ASPxRadioButtonList radioButtonList2 = gridView.FindEditFormTemplateControl("radioButLst2") as ASPxRadioButtonList;
 if (radioButtonList2 != null)    // it is always null

and

 (ASPxRadioButtonList)myGrid.FindEditRowCellTemplateControl(((GridViewDataColumn)myGrid.Columns["radioButLst2"]), "radioButLst2");

how can I access it


Solution

  • I have tried these gridView.FindEditFormTemplateControl

    This is only valid for EditFormTemplate, while you use EditItemTemplate.

    (ASPxRadioButtonList)myGrid.FindEditRowCellTemplateControl(((GridViewDataColumn)myGrid.Columns["radioButLst2"]), "radioButLst2");

    Identify a column by some valid marker, for example, Caption:

    protected void Options_Click(object sender, EventArgs e) {
        ASPxGridView gridView = myGrid;
    
        //ASPxRadioButtonList radioButtonList2 = (ASPxRadioButtonList)myGrid.FindEditRowCellTemplateControl(((GridViewDataColumn)myGrid.Columns["radioButLst2"]), "radioButLst2");
    
        ASPxRadioButtonList radioButtonList2 = (ASPxRadioButtonList)myGrid.FindEditRowCellTemplateControl(((GridViewDataColumn)myGrid.Columns["Report List"]), "radioButLst2");
    }