I have a grid in which two columns are linked, ie Project Type Categories and Project Types. On itemcreated I am adding select index changed and when editing it is working fine, however when inserting a new row, the second row does not reflect the changes.
.aspx
<
telerik:RadGrid ID="rgBenchmarkedHours" Skin="WebBlue" AutoGeneBenchmarkedHourColumns="false" Width="650px" AllowPaging="true" PageSize="10" OnPreRender="rgBenchmarkedHours_PreRender" OnNeedDataSource="rgBenchmarkedHours_NeedDataSource" OnUpdateCommand="rgBenchmarkedHours_UpdateCommand"
OnInsertCommand="rgBenchmarkedHours_InsertCommand" OnDeleteCommand="rgBenchmarkedHours_DeleteCommand"
OnItemCreated="rgBenchmarkedHours_ItemCreated" runat="server">
<PagerStyle AlwaysVisible="true" Mode="Slider"/>
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Left" />
<AlternatingItemStyle HorizontalAlign="Left" />
<MasterTableView EditMode="InPlace" CommandItemDisplay="Top" CommandItemSettings-AddNewRecordImageUrl="~/images/add.png"
CommandItemSettings-AddNewRecordText="Add row" AutoGenerateColumns="false" DataKeyNames="BenchmarkedHoursID" >
<Columns>
<telerik:GridEditCommandColumn ButtonType="ImageButton" UniqueName="EditCommandColumn" ItemStyle-HorizontalAlign="Center"></telerik:GridEditCommandColumn>
<telerik:GridBoundColumn UniqueName="BenchmarkedHoursID" DataField="BenchmarkedHoursID" HeaderText="BenchmarkedHoursID" ReadOnly="true" Visible="false"></telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="AgencyID" DataField="AgencyID" HeaderText="AgencyID" Visible="false"></telerik:GridBoundColumn>
<telerik:GridDropDownColumn UniqueName="ProjectTypeCategoryID" DataSourceID="ProjectTypeCategoryNameSource" ItemStyle-Width="250px"
DataField="ProjectTypeCategoryID" ListTextField="ProjectTypeCategoryName" ListValueField="ProjectTypeCategoryID" HeaderText="Project Type Category" ReadOnly="false"></telerik:GridDropDownColumn>
<telerik:GridDropDownColumn UniqueName="ProjectTypeNameDesc" DataSourceID="ProjectTypeNameSource" ItemStyle-Width="250px"
DataField="ProjectTypeID" ListTextField="ProjectTypeName" CurrentFilterFunction="EqualTo" CurrentFilterValue="ProjectTypeCategoryID" ListValueField="ProjectTypeID" HeaderText="Project Type">
</telerik:GridDropDownColumn>
<telerik:GridBoundColumn UniqueName="Category" DataField="CategoryName" HeaderText="Category" ReadOnly="true"></telerik:GridBoundColumn>
<telerik:GridBoundColumn UniqueName="EASFunction" DataField="EASFunction" HeaderText="EASFunction" Visible="false"></telerik:GridBoundColumn>
<telerik:GridDropDownColumn UniqueName="EASFunctionDesc" DataSourceID="EASFunctionSource" ItemStyle-Width="250px"
DataField="EASFunction" ListTextField="EASFunctionDesc" ListValueField="EASFunction"
HeaderText="EAS Function"></telerik:GridDropDownColumn>
<telerik:GridNumericColumn UniqueName="BenchmarkedHour" DataField="Hours" HeaderText="Benchmarked Hour" NumericType="Number" ItemStyle-HorizontalAlign="Right"></telerik:GridNumericColumn>
<telerik:GridButtonColumn ConfirmText="Delete this Benchmarked Hour?" ConfirmDialogType="RadWindow"
ConfirmTitle="Delete" ButtonType="ImageButton" CommandName="Delete" Text="Delete"
UniqueName="DeleteColumn">
<ItemStyle HorizontalAlign="Center"/>
</telerik:GridButtonColumn>
</Columns>
</MasterTableView>
</telerik:RadGrid>
<
asp:SqlDataSource ID="ProjectTypeNameSource" runat="server"
ConnectionString="<%$ ConnectionStrings:EuroEstimatesConnectionString %>"
SelectCommand="SELECT PT.[ProjectTypeID], PT.[ProjectTypeName] FROM [ProjectTypes] PT UNION SELECT 0, '- Select Type' ORDER BY PT.[ProjectTypeName]">
</asp:SqlDataSource>
<
asp:SqlDataSource ID="ProjectTypeCategoryNameSource" runat="server"
ConnectionString="<%$ ConnectionStrings:EuroEstimatesConnectionString %>"
SelectCommand="SELECT [ProjectTypeCategoryID], [ProjectTypeCategoryName] FROM [ProjectTypeCategories] UNION SELECT 0, '- Select Category' ORDER BY [ProjectTypeCategoryName]">
</asp:SqlDataSource>
.cs
protected
void rgBenchmarkedHours_ItemCreated(object sender, GridItemEventArgs e)
{
if (e.Item is GridEditableItem && e.Item.IsInEditMode)
{
RadComboBox list = (e.Item as GridEditableItem)["ProjectTypeCategoryID"].Controls[0] as RadComboBox;
list.AutoPostBack =
true;
list.SelectedIndexChanged +=
new RadComboBoxSelectedIndexChangedEventHandler(list_SelectedIndexChanged);
}
}
void list_SelectedIndexChanged(object sender, RadComboBoxSelectedIndexChangedEventArgs e)
{
GridEditableItem editedItem = (sender as RadComboBox).NamingContainer as GridEditableItem;
RadComboBox ddList = editedItem["ProjectTypeNameDesc"].Controls[0] as RadComboBox;
int ptc = int.Parse((editedItem["ProjectTypeCategoryID"].Controls[0] as RadComboBox).SelectedValue);
ddList.ClearSelection();
ddList.DataSource = da.GetProjectTypeNameDescription(ptc);
ddList.DataBind();
}
Thank you!