Please consider UI hierarchy below:
RadListView (ParentListView)
ParentListView Child 1 RadGrid
ParentListView Child 2RadGrid
ParentListView Child 3 RadListView Sub (Sub ListView)
Sub ListView Child 1 RadGrid
Sub ListView Child 2 RadGrid
Every grid above supports Add and Edit item functionality and every grid has it's Need Data Source event.
The problem is whenever I Add new record in ParentListView Child 2RadGrid (using template) it get reflected in UI, however when I try to add new record in Sub ListView Child 2 RadGrid it opens template view, user can enter value in it and click on Save button however it doesn't show newly added record in UI (the datasource object has new record in it).
(No Declarative DataSource is used for any control).
Any help is appreciated.
Thanks,
Shekhar
Here is the code
<telerik:RadListView runat="server" ID="radListViewParent" ItemPlaceholderID="ParentPlaceHolder" Skin="Vista" Font-Bold="true" EnableViewState="true"> <LayoutTemplate> <table cellpadding="0" cellspacing="0" width="99%"> <tr> <td align="left"> <asp:PlaceHolder ID="ParentPlaceHolder" runat="server"></asp:PlaceHolder> </td> </tr> <tr style="height: 20px;"> <td align="left"> <telerik:RadButton ID="btnAddNewItem" Text="Add New" CommandName="PerformInsert" runat="server"> </telerik:RadButton> </td> </tr> </table> </LayoutTemplate> <ItemTemplate> <table cellpadding="0" cellspacing="0" width="99%"> <tr> <td> <asp:HiddenField runat="server" ID="hdnFldId" Value='<%# Bind("Id") %>' /> <asp:Label ID="Label1" runat="server">Heading</asp:Label> </td> <td> <telerik:RadTextBox runat="server" ID="txtHeading" Text='<%# Bind("Text") %>'> </telerik:RadTextBox> </td> <td> <asp:ImageButton runat="server" ID="imgBtnDelete" AlternateText="Delete" CommandName="Delete" CommandArgument='<%# Bind("Id") %>' OnClientClick="return CofirmHeadingDelete()" ImageUrl="~/App_Themes/Theme1/images/delete_small_btn.gif" /> </td> </tr> <tr> <td> <asp:Label ID="Label2" runat="server">Text</asp:Label> </td> <td colspan="2"> <telerik:RadEditor runat="server" ID="radHeadingText" Height="200" Width="500" AutoResizeHeight="false" Content='<%# Bind("TextDiscription") %>'> <Tools> <telerik:EditorToolGroup> <telerik:EditorTool Name="Bold" Text="Bold" /> <telerik:EditorTool Name="Italic" Text="Italic" /> <telerik:EditorTool Name="Underline" Text="Underline" /> <telerik:EditorTool Name="InsertLink" Text="Insert Link Dialog" /> <telerik:EditorTool Name="Unlink" /> </telerik:EditorToolGroup> </Tools> </telerik:RadEditor> </td> </tr> <!--ParentListView Child 1 RadGrid --> <tr> <td> </td> <td colspan="2"> <fieldset style="width: 100%;"> <legend style="font-weight: bold; font-size: larger; color: Black;">Ref Doc</legend> <telerik:RadGrid runat="server" ID="ParentListViewChild1RadGrid" AutoGenerateColumns="false" AllowSorting="false" AllowAutomaticUpdates="true" AllowAutomaticInserts="true" Skin="Web20" OnItemDataBound="ParentListViewChild1RadGrid_ItemDataBound" OnItemCommand="ParentListViewChild1RadGrid_ItemCommand" OnItemCreated="ParentListViewChild1RadGrid_ItemCreated" OnNeedDataSource="ParentListViewChild1RadGrid_NeedDataSource"> <MasterTableView DataKeyNames="Id" CommandItemDisplay="Bottom" Width="100%" InsertItemDisplay="Bottom"> <Columns> <telerik:GridTemplateColumn ReadOnly="true"> <ItemTemplate> <asp:Image ID="imgFiletypeIcon" runat="server" /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="Description" HeaderText="Description"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="CustomFileName" HeaderText="CustomFileName" ReadOnly="true" Display="false"> </telerik:GridBoundColumn> <telerik:GridAttachmentColumn MaxFileSize="1048576" EditFormHeaderTextFormat="Upload File:" AttachmentDataField="BinaryData" DataTextField="CustomFileName" UniqueName="AttachmentColumn"> </telerik:GridAttachmentColumn> <telerik:GridEditCommandColumn HeaderStyle-Width="30px" EditImageUrl="../../../App_Themes/Theme1/images/update_small_btn.png" ButtonType="ImageButton"> </telerik:GridEditCommandColumn> <telerik:GridTemplateColumn> <ItemTemplate> <asp:ImageButton AlternateText="Delete" runat="server" ID="imgBtnEnrollDeleteRefDoc" CommandName="Delete" ImageUrl="~/App_Themes/Theme1/images/delete_btn.png" CommandArgument='<%# Eval("ArtifactId") %>' OnClientClick="return confirm('Are you sure you want to delete this record?');" /> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> <CommandItemSettings ShowRefreshButton="false" AddNewRecordText="" AddNewRecordImageUrl="../../../App_Themes/Theme1/images/add_small_btn.gif" /> <EditFormSettings EditColumn-ButtonType="ImageButton" FormTableStyle-CellSpacing="5" EditColumn-UpdateImageUrl="../../../App_Themes/Theme1/images/add_small_btn.gif" EditColumn-CancelImageUrl="../../../App_Themes/Theme1/images/cancel_small_btn.gif" EditColumn-UpdateText="Add" EditColumn-CancelText="Cancel"> <FormTableStyle CellSpacing="5" /> <FormMainTableStyle CellPadding="5" CellSpacing="5" /> </EditFormSettings> <NoRecordsTemplate> No records found. </NoRecordsTemplate> </MasterTableView> <ClientSettings> <ClientEvents OnCommand="gridCommand"></ClientEvents> </ClientSettings> </telerik:RadGrid> </fieldset> </td> </tr> <!-- ParentListView Child 2RadGrid --> <tr> <td> </td> <td colspan="2"> <fieldset style="width: 100%;"> <legend style="font-weight: bold; font-size: larger; color: Black;">URL</legend> <telerik:RadGrid runat="server" ID="ParentListViewChild2RadGrid" AutoGenerateColumns="false" AllowSorting="false" Skin="Web20" Width="100%" OnItemCommand="ParentListViewChild2RadGrid_ItemCommand" OnNeedDataSource="ParentListViewChild2RadGrid_NeedDataSource" OnItemDataBound="ParentListViewChild2RadGrid_ItemDataBound"> <MasterTableView DataKeyNames="HeadingId" CommandItemDisplay="Bottom" Width="100%" ShowHeadersWhenNoRecords="true"> <Columns> <telerik:GridBoundColumn UniqueName="Url" DataField="Url" HeaderText="Url" ItemStyle-Width="100px"> <ItemStyle Wrap="true" /> </telerik:GridBoundColumn> <telerik:GridBoundColumn UniqueName="Name" DataField="Name" HeaderText="Name" ItemStyle-Width="100px"> <ItemStyle Wrap="true" /> </telerik:GridBoundColumn> <telerik:GridEditCommandColumn HeaderText="" HeaderStyle-Width="30px" ButtonType="ImageButton" EditImageUrl="../../../App_Themes/Theme1/images/update_small_btn.png"> </telerik:GridEditCommandColumn> <telerik:GridButtonColumn ConfirmDialogType="Classic" ConfirmTitle="Confirm Delete" DataTextField="" UniqueName="Delete" HeaderStyle-Width="30px" ConfirmText="Are you sure you want to delete this record?" ButtonType="ImageButton" ImageUrl="~/App_Themes/Theme1/images/delete_btn.png" Text="Delete" CommandArgument="" CommandName="Delete"> </telerik:GridButtonColumn> </Columns> <CommandItemSettings ShowRefreshButton="false" AddNewRecordText="" AddNewRecordImageUrl="../../../App_Themes/Theme1/images/add_small_btn.gif" /> <EditFormSettings> <FormTableItemStyle Wrap="true"></FormTableItemStyle> <EditColumn ButtonType="ImageButton" UpdateImageUrl="../../../App_Themes/Theme1/images/update_small_btn.png" InsertImageUrl="../../../App_Themes/Theme1/images/add_small_btn.gif" UniqueName="EditCommandColumn1" CancelImageUrl="../../../App_Themes/Theme1/images/cancel_small_btn.gif" CancelText=""> </EditColumn> <FormTableButtonRowStyle HorizontalAlign="Right"></FormTableButtonRowStyle> </EditFormSettings> <NoRecordsTemplate> No records found. </NoRecordsTemplate> </MasterTableView> </telerik:RadGrid> </fieldset> </td> </tr> <!-- ParentListView Child 3 RadListView Sub (Sub ListView)--> <tr> <td colspan="3"> <telerik:RadListView runat="server" ID="ParentListViewChild3RadListViewSub" ItemPlaceholderID="SubListPlaceHolder" Skin="Vista" Font-Bold="true" OnItemDataBound="ParentListViewChild3RadListViewSub_ItemDataBound" OnItemCommand="ParentListViewChild3RadListViewSub_ItemCommand" EnableViewState="true" DataSource='<%# Eval("SubHeadingsList") %>'> <LayoutTemplate> <fieldset style="width: 100%; background-color: #f3f3f3;"> <legend style="font-weight: bold; font-size: larger; color: Black;">Sub Headings</legend> <table cellpadding="0" cellspacing="0" width="98%"> <tr> <td> <asp:PlaceHolder ID="SubListPlaceHolder" runat="server"></asp:PlaceHolder> </td> </tr> <tr style="height: 20px;"> <td align="right"> <telerik:RadButton ID="btnAddNewSubListItem" Text="Add New Sub Item" runat="server" CommandName="PerformInsert" CommandArgument='<%# Bind("HeadingId") %>'> </telerik:RadButton> </td> </tr> </table> </fieldset> </LayoutTemplate> <ItemTemplate> <table cellpadding="0" cellspacing="0" width="98%"> <tr> <td> <telerik:RadTextBox runat="server" ID="txtHeading" Text='<%# Bind("Text") %>'> </telerik:RadTextBox> </td> <td> <asp:ImageButton ID="imgBtnSubLisItemDelete" runat="server" AlternateText="Delete" CommandName="Delete" CommandArgument='<%# Bind("HeadingId") %>' OnClientClick="return CofirmSubHeadingDelete()" ImageUrl="~/App_Themes/Theme1/images/delete_small_btn.gif" /> </td> </tr> <tr> <td> <asp:Label ID="Label4" runat="server">Text</asp:Label> </td> <td colspan="2"> <telerik:RadEditor runat="server" ID="radEditorSubListItemText" Height="200" Width="500" AutoResizeHeight="false" Content='<%# Bind("TextDiscription") %>'> <Tools> <telerik:EditorToolGroup> <telerik:EditorTool Name="Bold" Text="Bold" /> <telerik:EditorTool Name="Italic" Text="Italic" /> <telerik:EditorTool Name="Underline" Text="Underline" /> <telerik:EditorTool Name="InsertLink" Text="Insert Link Dialog" /> <telerik:EditorTool Name="Unlink" /> </telerik:EditorToolGroup> </Tools> </telerik:RadEditor> </td> </tr> <!--Grid Subheading Ref Doc--> <tr> <td> </td> <td colspan="2"> <fieldset style="width: 100%"> <legend style="font-weight: bold; font-size: larger; color: Black;">Ref Doc</legend> <telerik:RadGrid runat="server" ID="SubListViewChild1RadGrid" AutoGenerateColumns="false" AllowSorting="false" AllowAutomaticUpdates="true" AllowAutomaticInserts="true" Skin="Web20" OnItemCommand="SubListViewChild1RadGrid_ItemCommand" OnItemDataBound="SubListViewChild1RadGrid_ItemDataBound" OnNeedDataSource="SubListViewChild1RadGrid_OnNeedDataSource"> <MasterTableView DataKeyNames="ArtifactId" CommandItemDisplay="Bottom" Width="90%"> <Columns> <telerik:GridBoundColumn DataField="IsFileUploaded" HeaderText="ID" ReadOnly="true" Display="false"> </telerik:GridBoundColumn> <telerik:GridTemplateColumn ReadOnly="true"> <ItemTemplate> <asp:Image ID="imgFiletypeIcon" runat="server" /> </ItemTemplate> </telerik:GridTemplateColumn> <telerik:GridBoundColumn DataField="Description" HeaderText="Description"> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="CustomFileName" ReadOnly="true" HeaderText="CustomFileName" Display="false"> </telerik:GridBoundColumn> <telerik:GridAttachmentColumn MaxFileSize="1048576" EditFormHeaderTextFormat="Upload File:" HeaderText="File" AttachmentDataField="BinaryData" DataTextField="CustomFileName" UniqueName="AttachmentColumn"> </telerik:GridAttachmentColumn> <telerik:GridEditCommandColumn HeaderStyle-Width="30px" ButtonType="ImageButton" EditImageUrl="../../../App_Themes/Theme1/images/update_small_btn.png"> </telerik:GridEditCommandColumn> <telerik:GridTemplateColumn> <ItemTemplate> <asp:ImageButton AlternateText="Delete" runat="server" ID="imgSubHeadBtnDeleteRefDoc" CommandName="Delete" ImageUrl="~/App_Themes/Theme1/images/delete_btn.png" CommandArgument='<%# Eval("ArtifactId") %>' OnClientClick="return confirm('Are you sure you want to delete this record?');" /> </ItemTemplate> </telerik:GridTemplateColumn> </Columns> <CommandItemSettings ShowRefreshButton="false" AddNewRecordText="" AddNewRecordImageUrl="../../../App_Themes/Theme1/images/add_small_btn.gif" /> <EditFormSettings EditColumn-ButtonType="ImageButton" FormTableStyle-CellSpacing="5" EditColumn-UpdateImageUrl="../../../App_Themes/Theme1/images/add_small_btn.gif" EditColumn-CancelImageUrl="../../../App_Themes/Theme1/images/cancel_small_btn.gif" EditColumn-UpdateText="Save" EditColumn-CancelText="Cancel"> <EditColumn UniqueName="EditCommandColumn"> </EditColumn> <FormTableStyle CellSpacing="5" /> <FormMainTableStyle CellPadding="5" CellSpacing="5" /> </EditFormSettings> <NoRecordsTemplate> No records found. </NoRecordsTemplate> </MasterTableView> <ClientSettings> <ClientEvents OnCommand="gridCommand"></ClientEvents> </ClientSettings> </telerik:RadGrid> </fieldset> </td> </tr> <!--Sub ListView Child 2 RadGrid --> <tr> <td> </td> <td colspan="2"> <fieldset style="width: 100%"> <legend style="font-weight: bold; font-size: larger; color: Black;">URL</legend> <telerik:RadGrid runat="server" ID="SubListViewChild2RadGrid" AutoGenerateColumns="false" AllowSorting="false" Skin="Web20" Width="100%" OnNeedDataSource="SubListViewChild2RadGrid_NeedDataSource" OnItemCommand="SubListViewChild2RadGrid_ItemCommand" OnItemDataBound="SubListViewChild2RadGrid_ItemDataBound"> <MasterTableView DataKeyNames="ArtifactId" CommandItemDisplay="Bottom" Width="100%"> <Columns> <telerik:GridBoundColumn DataField="Url" HeaderText="Url" ItemStyle-Width="100px"> <ItemStyle Wrap="true" /> </telerik:GridBoundColumn> <telerik:GridBoundColumn DataField="Name" HeaderText="Name" ItemStyle-Width="100px"> <ItemStyle Wrap="true" /> </telerik:GridBoundColumn> <telerik:GridEditCommandColumn HeaderText="" HeaderStyle-Width="30px" ButtonType="ImageButton" EditImageUrl="../../../App_Themes/Theme1/images/update_small_btn.png"> </telerik:GridEditCommandColumn> <telerik:GridButtonColumn ConfirmDialogType="Classic" ConfirmTitle="Confirm Delete" DataTextField="" UniqueName="Delete" HeaderStyle-Width="30px" ConfirmText="Are you sure you want to delete this record?" ButtonType="ImageButton" ImageUrl="~/App_Themes/Theme1/images/delete_btn.png" Text="Delete" CommandArgument="" CommandName="Delete"> </telerik:GridButtonColumn> </Columns> <CommandItemSettings ShowRefreshButton="false" AddNewRecordText="" AddNewRecordImageUrl="../../../App_Themes/Theme1/images/add_small_btn.gif" /> <EditFormSettings> <FormTableItemStyle Wrap="true"></FormTableItemStyle> <EditColumn UpdateText="" UpdateImageUrl="../../../App_Themes/Theme1/images/update_small_btn.png" InsertText="" InsertImageUrl="../../../App_Themes/Theme1/images/add_small_btn.gif" ButtonType="ImageButton" UniqueName="EditCommandColumn1" CancelImageUrl="../../../App_Themes/Theme1/images/cancel_small_btn.gif" CancelText=""> </EditColumn> <FormTableButtonRowStyle HorizontalAlign="Right" CssClass="EditFormButtonRow"></FormTableButtonRowStyle> </EditFormSettings> <NoRecordsTemplate> No records found. </NoRecordsTemplate> </MasterTableView> </telerik:RadGrid> </fieldset> </td> </tr> </table> </ItemTemplate> <ItemSeparatorTemplate> <table> <tr style="height: 20px;"> </tr> </table> </ItemSeparatorTemplate> </telerik:RadListView> </td> </tr> </table> </ItemTemplate> <ItemSeparatorTemplate> <table> <tr style="height: 20px;"> </tr> </table> </ItemSeparatorTemplate></telerik:RadListView>
