I’ve recently needed to incorporate a RadGrid in which my edit template contained two RadComboBoxes. Depending on the value of my first combo box, the second would be updated with different sets of data. The problem I ran into was how to connect to this second combo box so I can bind it with data.
Here’s the basic premise:
RadComboBox combo1 = (RadComboBox)sender;
GridEditFormItem editItem = (GridEditFormItem)combo1.NamingContainer;
RadComboBox combo2 = (RadComboBox)editItem.FindControl("RadComboBox2");And the more complete code sample here:
ASPX --
<telerik:RadGrid ID="RadGrid1" runat="server">
<MasterTableView EditMode="EditForms"> <EditFormSettings EditFormType="Template"><FormTemplate>
<telerik:RadComboBox ID="RadComboBox1" runat="server" AutoPostBack="true" OnSelectedIndexChanged="RadComboBox1_OnSelectedIndexChanged">
<Items>
<telerik:RadComboBoxItem Text="Selection 1" Value="1" />
<telerik:RadComboBoxItem Text="Selection 2" Value="2" />
</Items>
</telerik:RadComboBox>
<telerik:RadComboBox ID="RadComboBox2" runat="server">
</telerik:RadComboBox>
</FormTemplate>
</EditFormSettings>
</MasterTableView>
</telerik:RadGrid>
Code-behind --
protected void RadComboBox1_OnSelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
{RadComboBox combo1 = (RadComboBox)sender;
GridEditFormItem editItem = (GridEditFormItem)combo1.NamingContainer;
RadComboBox combo2 = (RadComboBox)editItem.FindControl("RadComboBox2"); switch(e.Value) { case "1":
combo2.Items.Add(new RadComboBoxItem("Test"));
break;case "2":
combo2.Items.Add(new RadComboBoxItem("Test Again"));
break;}
}
Good luck :)