This is a migrated thread and some comments may be shown as answers.

[Solved] Grid / Hierarchy with Templates - How to access Nested controls?

1 Answer 159 Views
Grid
This is a migrated thread and some comments may be shown as answers.
AL
Top achievements
Rank 1
AL asked on 15 May 2009, 03:36 PM
I am using example from this page:--
http://demos.telerik.com/aspnet-ajax/grid/examples/hierarchy/nestedviewtemplate/defaultcs.aspx



How to access controls of a "DetailsView1" dug deep inside many levels in a RadGrid? I am using objectDataSource in server side, and when I fire up "OnItemUpdating="DetailsView1_ItemUpdating"", what code should I write in OnItemUpdating so that I can grab the values typed by the user and pass these values for the update. I need to perform this Update task from.cs file NOT .aspx.

The page structure is like this:

<telerik:RadGrid ID="RadGrid1"
    <MasterTableView
        <NestedViewTemplate>
            <asp:Panel
                <telerik:RadTabStrip></telerik:RadTabStrip>
                <telerik:RadMultiPage ID="Multipage1"
                    <telerik:RadPageView ID="PageView1"
                        <asp:DetailsView ID="DetailsView1" OnItemUpdating="DetailsView1_ItemUpdating"
                            <Fields>
                                <asp:TemplateField>
                                    <ItemTemplate></ItemTemplate>
                                    <EditItemTemplate></EditItemTemplate>
                                 </asp:TemplateField>   





Here is my code:--------------------

<telerik:RadGrid ID="RadGrid1" runat="server" DataSourceID="ObjUserDetail_GetAllUsers" Width="1178px"
    Skin="Office2007" AutoGenerateColumns="False" AllowSorting="True" AllowMultiRowSelection="False"
    AllowPaging="True" PageSize="5" GridLines="None" ShowGroupPanel="true" OnItemCreated="RadGrid1_ItemCreated"
    OnItemCommand="RadGrid1_ItemCommand">
    <MasterTableView DataSourceID="ObjUserDetail_GetAllUsers" DataKeyNames="UserName" AllowMultiColumnSorting="True" GroupLoadMode="Server">
        <NestedViewTemplate>
            <asp:Panel runat="server" ID="InnerContainer" CssClass="NestedGridTemplate" Visible="false">
                <telerik:RadTabStrip runat="server" ID="TabStip1" MultiPageID="Multipage1" Skin="Office2007" SelectedIndex="0">
                    <Tabs>
                        <telerik:RadTab runat="server" Text="User Details" PageViewID="PageView1"></telerik:RadTab>
                        <telerik:RadTab runat="server" Text="Hospital Assign" PageViewID="PageView2"></telerik:RadTab>
                        <telerik:RadTab runat="server" Text="Survey Contact" PageViewID="PageView3"></telerik:RadTab>
                    </Tabs>
                </telerik:RadTabStrip>
                <telerik:RadMultiPage runat="server" ID="Multipage1" SelectedIndex="0" RenderSelectedPageOnly="false">
                    <telerik:RadPageView runat="server" ID="PageView1" CssClass="blueBox2">
                        <asp:Label ID="Label1" Font-Bold="true" Font-Italic="true" Text='<%# Eval("UserName") %>' Visible="false" runat="server" />
                        <table cellpadding="0" cellspacing="0">
                            <tr><td colspan="2">&nbsp;</td></tr>
                            <tr>
                                <td width="25px">&nbsp;</td>
                                <td>
                                    <asp:DetailsView OnItemUpdating="DetailsView1_ItemUpdating" ID="DetailsView1" DataKeyNames="UserName" AllowPaging="true" GridLines="None" Width="100%"
                                        DataSourceID="ObjUserDetail_GetUserDetailsByUserName" OnItemUpdated="DetailsView1_ItemUpdated" runat="server" AutoGenerateRows="false">
                                        <Fields>
                                            <asp:TemplateField>
                                                <ItemTemplate>                                               
                                                    <table cellpadding="4px" cellspacing="0px" width="100%" border="0px">
                                                        <tr>
                                                            <td width="75px" align="right"><asp:Label ID="Label1" runat="server" Text="Username:"></asp:Label></td>
                                                            <td><asp:Label ID="LblUserName" runat="server" Text='<%# Eval("UserName") %>'></asp:Label></td>
                                                        </tr>
                                                        <tr>
                                                            <td width="75px" align="right"><asp:Label ID="Label2" runat="server" Text="First Name:"></asp:Label></td>
                                                            <td><asp:Label ID="LblFirstName" runat="server" Text='<%# Eval("FirstName") %>'></asp:Label></td>
                                                        </tr>
                                                        <tr>
                                                            <td width="75px" align="right"><asp:Label ID="Label3" runat="server" Text="Last Name:"></asp:Label></td>
                                                            <td><asp:Label ID="LblLastName" runat="server" Text='<%# Eval("LastName") %>'></asp:Label></td>
                                                        </tr>
                                                        <tr>
                                                            <td width="75px" align="right"><asp:Label ID="Label4" runat="server" Text="Email:"></asp:Label></td>
                                                            <td><asp:Label ID="LblEmail" runat="server" Text='<%# Eval("Email") %>'></asp:Label></td>
                                                        </tr>
                                                        <tr>
                                                            <td width="75px" align="right"><asp:Label ID="Label5" runat="server" Text="Title:"></asp:Label></td>
                                                            <td><asp:Label ID="LblTitle" runat="server" Text='<%# Eval("Title") %>'></asp:Label></td>
                                                        </tr>
                                                        <tr>
                                                            <td width="75px" align="right"><asp:Label ID="Label6" runat="server" Text="Phone:"></asp:Label></td>
                                                            <td><asp:Label ID="LblPhone" runat="server" Text='<%# Eval("Phone") %>'></asp:Label></td>
                                                        </tr>
                                                        <tr>
                                                            <td width="75px" align="right"><asp:Label ID="Label7" runat="server" Text="Phone Ext.:"></asp:Label></td>
                                                            <td><asp:Label ID="LblPhoneExt" runat="server" Text='<%# Eval("PhoneExt") %>'></asp:Label>&nbsp;</td>
                                                        </tr>
                                                        <tr>
                                                            <td width="75px" align="right"><asp:Label ID="Label8" runat="server" Text="Fax:"></asp:Label></td>
                                                            <td><asp:Label ID="LblFax" runat="server" Text='<%# Eval("Fax") %>'></asp:Label></td>
                                                        </tr>
                                                        <tr>
                                                            <td width="75px" align="right"><asp:Label ID="Label9" runat="server" Text="IsApproved:"></asp:Label></td>
                                                            <td><asp:CheckBox Checked='<%# Eval("IsApproved") %>' ID="Label11" runat="server"></asp:CheckBox>&nbsp;</td>
                                                        </tr>
                                                        <tr>
                                                            <td width="75px" align="right"><asp:Label ID="Label12" runat="server" Text="IsLockedOut:"></asp:Label></td>
                                                            <td><asp:CheckBox Checked='<%# Eval("IsLockedOut") %>' ID="CheckBox1" runat="server"></asp:CheckBox></asp:Label></td>
                                                        </tr>
                                                        <tr>
                                                            <td colspan="2">&nbsp;</td>
                                                        </tr>                                                        
                                                    </table>
                                                </ItemTemplate>
                                                <EditItemTemplate>
                                                    <table cellpadding="3px" cellspacing="0px" width="100%" border="0px">
                                                        <tr>
                                                            <td width="75px" align="right"><asp:Label ID="Label1" runat="server" Text="Username:"></asp:Label></td>
                                                            <td><asp:Label ID="LblUserName" runat="server" Text='<%# Eval("UserName") %>'></asp:Label></td>
                                                        </tr>
                                                        <tr>
                                                            <td width="75px" align="right"><asp:Label ID="Label2" runat="server" Text="First Name:"></asp:Label></td>
                                                            <td><asp:TextBox ID="TxtFirstName" runat="server" Text='<%# Eval("FirstName") %>'></asp:TextBox></td>
                                                        </tr>
                                                        <tr>
                                                            <td width="75px" align="right"><asp:Label ID="Label3" runat="server" Text="Last Name:"></asp:Label></td>
                                                            <td><asp:TextBox ID="TxtLastName" runat="server" Text='<%# Eval("LastName") %>'></asp:TextBox></td>
                                                        </tr>
                                                        <tr>
                                                            <td width="75px" align="right"><asp:Label ID="Label4" runat="server" Text="Email:"></asp:Label></td>
                                                            <td><asp:TextBox ID="TxtEmail" runat="server" Text='<%# Eval("Email") %>'></asp:TextBox></td>
                                                        </tr>
                                                        <tr>
                                                            <td width="75px" align="right"><asp:Label ID="Label5" runat="server" Text="Title:"></asp:Label></td>
                                                            <td><asp:TextBox ID="TxtTitle" runat="server" Text='<%# Eval("Title") %>'></asp:TextBox></td>
                                                        </tr>
                                                        <tr>
                                                            <td width="75px" align="right"><asp:Label ID="Label6" runat="server" Text="Phone:"></asp:Label></td>
                                                            <td><asp:TextBox ID="TxtPhone" runat="server" Text='<%# Eval("Phone") %>'></asp:TextBox></td>
                                                        </tr>
                                                        <tr>
                                                            <td width="75px" align="right"><asp:Label ID="Label7" runat="server" Text="Phone Ext.:"></asp:Label></td>
                                                            <td><asp:TextBox ID="TxtPhoneExt" runat="server" Text='<%# Eval("PhoneExt") %>'></asp:TextBox></td>
                                                        </tr>
                                                        <tr>
                                                            <td width="75px" align="right"><asp:Label ID="Label8" runat="server" Text="Fax:"></asp:Label></td>
                                                            <td><asp:TextBox ID="TxtFax" runat="server" Text='<%# Eval("Fax") %>'></asp:TextBox></td>
                                                        </tr>
                                                        <tr>
                                                            
                                                        <td><asp:CheckBox Checked='<%# Eval("IsApproved") %>' ID="ChkIsApproved" runat="server"></asp:CheckBox></td>
                                                        </tr>
                                                        <tr>
                                                            <td width="75px" align="right"><asp:Label ID="Label12" runat="server" Text="IsLockedOut:"></asp:Label></td>
                                                            <td><asp:CheckBox Checked='<%# Eval("IsLockedOut") %>' ID="ChkIsLocedOut" runat="server"></asp:CheckBox></td>
                                                        </tr>
                                                        <tr>
                                                            <td colspan="2">&nbsp;</td>
                                                        </tr>                                     
                                                    </table>                                     
                                                </EditItemTemplate>
                                            </asp:TemplateField>
                                            <asp:CommandField ShowEditButton="True" ButtonType="Image" EditImageUrl="~/images/Update.gif" UpdateImageUrl="~/images/Save.gif" CancelImageUrl="~/images/Cancel.gif" />
                                        </Fields>
                                    </asp:DetailsView>                                               
                                    <asp:ObjectDataSource ID="ObjUserDetail_GetUserDetailsByUserName" runat="server"
                                        SelectMethod="UserDetail_GetUserDetailsByUserName" TypeName="Survey.BLL.UserDetailManager">
                                        <SelectParameters>
                                            <asp:ControlParameter ControlID="Label1" PropertyName="Text" Type="String" Name="UserName" />
                                        </SelectParameters>
                                    </asp:ObjectDataSource>                                                
                                </td>
                            </tr>
                            <tr>
                                <td colspan="2">&nbsp;</td>
                            </tr>
                        </table>
                    </telerik:RadPageView>
                </telerik:RadMultiPage>
            </asp:Panel>
        </NestedViewTemplate>
        <Columns>
            <telerik:GridBoundColumn SortExpression="FirstName" HeaderText="First Name" HeaderButtonType="TextButton" DataField="FirstName" UniqueName="FirstName"></telerik:GridBoundColumn>
            <telerik:GridBoundColumn SortExpression="LastName" HeaderText="Last Name" HeaderButtonType="TextButton"    DataField="LastName" UniqueName="LastName"></telerik:GridBoundColumn>
            <telerik:GridBoundColumn SortExpression="Title" HeaderText="Title" HeaderButtonType="TextButton" DataField="Title" UniqueName="Title"></telerik:GridBoundColumn>
            <telerik:GridBoundColumn SortExpression="Email" HeaderText="Email" HeaderButtonType="TextButton" DataField="Email" UniqueName="Email"></telerik:GridBoundColumn>
            <telerik:GridCheckBoxColumn SortExpression="IsApproved" HeaderText="IsApproved" HeaderButtonType="TextButton" DataField="IsApproved" UniqueName="IsApproved"></telerik:GridCheckBoxColumn>
            <telerik:GridCheckBoxColumn SortExpression="IsLockedOut" HeaderText="IsLockedOut" HeaderButtonType="TextButton" DataField="IsLockedOut" UniqueName="IsLockedOut"></telerik:GridCheckBoxColumn>
        </Columns>
    </MasterTableView>
    <ClientSettings AllowDragToGroup="true" />
</telerik:RadGrid>

1 Answer, 1 is accepted

Sort by
0
Sebastian
Telerik team
answered on 18 May 2009, 03:10 PM
Hello AL,

Let me know if I am missing something, however the DetailsView instance should be passed as first argument inside the OnItemUpdating event of the control. Hence you should be able to access it directly through the first argument (sender) inside the respective server event handler.

More information about this event notation and the arguments passed in it can be gathered from here:
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.detailsview.itemupdating.aspx

Regards,
Sebastian
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Check out the tips for optimizing your support resource searches.
Tags
Grid
Asked by
AL
Top achievements
Rank 1
Answers by
Sebastian
Telerik team
Share this question
or