I have a user control that contains a radio list that on SelectIndexChanged it updates a drop down.
I put together a basic page and add the user control to the page it works fine but when I move the control to inside a radgrid it doesn't work, it will post back but never call the SelectIndexChanged event.
Working code
working.aspx
<TT:ToolTipControl ID="ToolTipEdit" runat="server" /> working.aspx.cs
protected void Page_Load(object sender, EventArgs e) { ToolTipEdit.getEditToolTip("POL_TERM_CD", "DataPolTermDropDownlistEdit"); } User Control
userControl.ascx.cs
public void getEditToolTip(string fieldName, string ddlName) { DataPolTermRadioListBox ccPolTermRadioListBox = new DataPolTermRadioListBox(); //custom radio list ccPolTermRadioListBox.ID = "PolTermRadioListBox"; ccPolTermRadioListBox.AutoPostBack = true; ccPolTermRadioListBox.SelectedIndexChanged += new System.EventHandler(updateParent); ToolTip.Controls.Add(ccPolTermRadioListBox); }
Broken Code
brokenPage.aspx
<telerik:RadGrid ID="rgState" Skin="WebBlue" runat="server" OnNeedDataSource="rgState_NeedDataSource" AutoGenerateColumns="False" OnPreRender="rgState_PreRender"> <MasterTableView DataKeyNames="wrtnStPolId" AllowAutomaticUpdates="false" AllowAutomaticDeletes="true" AllowAutomaticInserts="false" CommandItemDisplay="Top" AllowMultiColumnSorting="True" EditMode="InPlace" GroupLoadMode="Server" Caption="State(s) and Exposure(s)"> <Columns> <telerik:GridTemplateColumn AllowFiltering="false" HeaderText="Pol Type Nstd" SortExpression="nonStdPolTypeCd" UniqueName="nonStdPolTypeCd"> <ItemTemplate> <asp:Label ID="lblNonStdPolTypeCd" runat="server" align="center" Text='<%#DataBinder.Eval(Container.DataItem, "nonStdPolTypeCd")%>' /> </ItemTemplate> <EditItemTemplate> <cc1:DataNonStdTypeCdDropDownList ID="ddlNonStdTypeCd" runat="server" ClientIDMode="Predictable"> </cc1:DataNonStdTypeCdDropDownList> <TT:ToolTipControl ID="ttcNonStdPolTypeCdEdit" runat="server" /> </EditItemTemplate> </telerik:GridTemplateColumn> </Columns> </MasterTableView> </telerik:RadGrid>
brokenPage.aspx.cs
protected void rgState_PreRender(object sender, EventArgs e) { RadGrid rgExpMod = (RadGrid)sender; foreach (GridDataItem row in rgExpMod.Items) { GridDataItem gdiItem = (GridDataItem)row; if (row.FindControl("ttcNonStdPolTypeCdEdit") != null) { DropDownList ddl = (DropDownList)row.FindControl("ddlNonStdTypeCd"); ddl.ID += row.RowIndex; ddl.SelectedIndex = 2; NCCI.PDC.Web.Controls.ucToolTip ttcNonStdPolTypeCdEdit = (NCCI.PDC.Web.Controls.ucToolTip)row.FindControl("ttcNonStdPolTypeCdEdit"); ttcNonStdPolTypeCdEdit.getEditToolTip("non_std_pol_type_cd", ddl.ID); } } }