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

hirearchy grid-how to get the inner detailtable controls in itemDatabound or itemCommand event?

1 Answer 126 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Vignesh
Top achievements
Rank 1
Vignesh asked on 31 Mar 2012, 06:56 AM
Hi,


please give idea, i need it now..

"how to get the inner detailtable[1] controls in itemDatabound or itemCommand event? ..while clicking the row i need to rebind the columns of second detailtable column based of its another column value?" ques

Am using telerik:RadGrid control for displaying my data's, the grid is in hierarchy mode, in this grid three table values are binding...

the grid structure is mastertableview[] +
Detailtableview[0] +
Detailtableview[1]                                                                                                                                                                                                                                                                

below is my coding in aspx page,


<telerik:RadGrid ID="rgAdminLogIn" runat="server" Width="100%" ShowStatusBar="true" AllowFilteringByColumn="true" 
                                AutoGenerateColumns="False" PageSize="500" AllowSorting="True" AllowMultiRowSelection="False"
                                AllowPaging="True" OnDetailTableDataBind="rgAdminLogIn_DetailTableDataBind" OnNeedDataSource="rgAdminLogIn_NeedDataSource" OnItemCommand="rgAdminLogIn_ItemCommand" OnItemCreated="rgAdminLogIn_ItemCreated"
                                GridLines="None" OnItemDataBound="rgAdminLogIn_ItemDataBound">
                                <PagerStyle Mode="NextPrevAndNumeric"></PagerStyle>

                                <MasterTableView HierarchyLoadMode="ServerOnDemand" Width="100%" DataKeyNames="LoginId" AllowFilteringByColumn="true" CommandItemDisplay="Top"
                                    AllowMultiColumnSorting="True" ShowHeader="true" GridLines="None">
                                    <DetailTables>
                                       
 <telerik:GridTableView HierarchyLoadMode="ServerOnDemand" DataKeyNames="LoginId,AccountTypeId" AllowFilteringByColumn="false"
                                            Name="AccountType" Width="100%" ShowHeader="false" GridLines="None" BorderStyle="None" HierarchyDefaultExpanded="true" >
                                            <DetailTables>

                                                <telerik:GridTableView HierarchyLoadMode="ServerOnDemand" Name="Account" Width="100%" DataKeyNames="Id" AllowFilteringByColumn="false" 
                                                    ShowHeader="true" GridLines="None" BorderStyle="None">
                                                    <Columns>
                                                    <telerik:GridTemplateColumn HeaderText="Delete" ItemStyle-HorizontalAlign="Center"
                                                            HeaderStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Middle" HeaderStyle-Width="70px">
                                                            <ItemTemplate>
                                                                <asp:ImageButton ID="lnkDelete" runat="server" OnCommand="lnkDelete_OnDelete" CommandArgument='<%# Eval("Id") + "," + Eval("Type") %>'
                                                                    OnClientClick="Are you sure to delete this account?" ToolTip="click here to delete this account"
                                                                    ImageUrl="~/ImagesNew/delete-icon.png" />
                                                            </ItemTemplate>
                                                        </telerik:GridTemplateColumn>
                                                        <telerik:GridBoundColumn SortExpression="CreatedOn" DataField="CreatedOn" HeaderText="CreatedOn"
                                                            ItemStyle-Width="70px">
                                                        </telerik:GridBoundColumn> 
                                                        <telerik:GridBoundColumn SortExpression="IsActivated" UniqueName="IsActivated" DataField="IsActivated" HeaderText="IsActivated"
                                                            ItemStyle-Width="70px" Visible="false">
                                                        </telerik:GridBoundColumn>                                                      
                                                        <telerik:GridBoundColumn SortExpression="Name" DataField="Name" HeaderText="Name"
                                                            ItemStyle-Width="100px">
                                                        </telerik:GridBoundColumn>                                                        
                                                        <telerik:GridTemplateColumn UniqueName="OrganizationName" HeaderText="Hospital Name"
                                                            DataField="OrganizationName" ItemStyle-HorizontalAlign="Left" ItemStyle-VerticalAlign="Top" 
                                                            HeaderStyle-Width="150px">
                                                            <ItemTemplate>
                                                                <asp:HyperLink ID="hlnkOrganizationName" NavigateUrl='<%# "http://" + Eval("SubDomain") + "." + GetRootDomain() %>'
                                                                    runat="server" Target="_blank" ToolTip="Click here to view Landing Page"><%# Eval("OrganizationName") %></asp:HyperLink>
                                                            </ItemTemplate>
                                                        </telerik:GridTemplateColumn>  
                                                        <telerik:GridTemplateColumn HeaderText="Admin Activation" ItemStyle-HorizontalAlign="Center"
                                                            UniqueName="Activation" HeaderStyle-HorizontalAlign="Center" ItemStyle-VerticalAlign="Middle"
                                                            HeaderStyle-Width="70px">
                                                            <ItemTemplate>
                                                                <asp:LinkButton ID="lnkActivation" runat="server" Text='<%#Eval("IsActivated") %>'
                                                                    OnCommand="lnkActivation_OnUpdate" CommandArgument='<%# Eval("Id") + "," + Eval("Type") %>' />
                                                            </ItemTemplate>
                                                        </telerik:GridTemplateColumn>
                                                        <telerik:GridTemplateColumn HeaderText="Auto Login" ItemStyle-HorizontalAlign="Center"
                                                            ItemStyle-VerticalAlign="Middle" HeaderStyle-Width="50px">
                                                            <ItemTemplate>
                                                                <asp:HyperLink ID="hlnkLogin" NavigateUrl='<%# GetUrl() + "Default.aspx?user=" + Eval("EmailId") + "&type=" + Eval("Type") + "&orgid=" + Eval("OrganizationId") + "&accountid=" + Eval("Id") %>'
                                                                    Text="Login" runat="server" Target="_blank" ToolTip="Click here to auto login" />
                                                                    <asp:Label ID="lblActivate" runat="server" Text='<%#Eval("IsActivated") %>' Visible="false"></asp:Label>
                                                            </ItemTemplate>
                                                        </telerik:GridTemplateColumn>                                                        
                                                        <telerik:GridBoundColumn SortExpression="SubDomain" DataField="SubDomain" HeaderText="SubDomain" Visible="false">
                                                        </telerik:GridBoundColumn>
                                                        <telerik:GridBoundColumn SortExpression="OrganizationId" DataField="OrganizationId" HeaderText="OrganizationId" Visible="false">
                                                        </telerik:GridBoundColumn>
                                                    </Columns>
                                                    <NoRecordsTemplate>
                                                        <span style="color: red; font-size: 8pt;"><i>There is no account in this account type!</i></span>
                                                    </NoRecordsTemplate>
                                                </telerik:GridTableView>
                                            </DetailTables>
                                            <Columns>
                                                <telerik:GridBoundColumn SortExpression="AccountTypeName" DataField="AccountTypeName" ItemStyle-Width="150px">
                                                </telerik:GridBoundColumn>
                                            </Columns>
                                        </telerik:GridTableView>
                                    </DetailTables>

                                    <Columns>
                                    <telerik:GridBoundColumn SortExpression="IsActivated" UniqueName="IsActivated" DataField="IsActivated" HeaderText="IsActivated"
                                                            ItemStyle-Width="70px" Visible="false">
                                                        </telerik:GridBoundColumn>  
                                        <telerik:GridBoundColumn SortExpression="EmailId" DataField="EmailId" HeaderText="Email Id" AutoPostBackOnFilter="true" CurrentFilterFunction="StartsWith"
                                            ItemStyle-Font-Bold="true">
                                        </telerik:GridBoundColumn>
                                        <telerik:GridBoundColumn SortExpression="MobileId" DataField="MobileId" HeaderText="Mobile Number" AutoPostBackOnFilter="true" CurrentFilterFunction="StartsWith"
                                            ItemStyle-Font-Bold="true">
                                        </telerik:GridBoundColumn>
                                        <telerik:GridBoundColumn SortExpression="Password" DataField="Password" HeaderText="Password"  AutoPostBackOnFilter="true" CurrentFilterFunction="StartsWith"
                                            ItemStyle-Font-Bold="true">
                                        </telerik:GridBoundColumn>
                                        <telerik:GridBoundColumn SortExpression="ActivationStatus" UniqueName="ActivationStatus" DataField="ActivationStatus" HeaderText="Main Account Status" AutoPostBackOnFilter="true" CurrentFilterFunction="StartsWith"
                                            ItemStyle-Font-Bold="true">
                                        </telerik:GridBoundColumn>
                                        <telerik:GridBoundColumn SortExpression="Profile" DataField="Profile" HeaderText="Profile Status" AutoPostBackOnFilter="true" CurrentFilterFunction="StartsWith"
                                            ItemStyle-Font-Bold="true">
                                        </telerik:GridBoundColumn>
                                        <telerik:GridTemplateColumn HeaderText="Auto Login" ItemStyle-HorizontalAlign="Center"
                                            ItemStyle-VerticalAlign="Middle" HeaderStyle-Width="50px">
                                            <ItemTemplate>
                                                <asp:HyperLink ID="hlnkLogin" NavigateUrl='<%# GetUrl() + "Default.aspx?user=" + Eval("EmailId").ToString().Trim() + "&type=5&orgid=0&accountid=" + Eval("LoginId") %>'
                                                    Text="Login" runat="server" Target="_blank" ToolTip="Click here to auto login" />
                                            </ItemTemplate>
                                        </telerik:GridTemplateColumn>
                                    </Columns>
                                    <NoRecordsTemplate>
                                        <span style="color: red; font-size: 8pt;"><i>No Login account available.</i></span>
                                    </NoRecordsTemplate>
                                </MasterTableView>
                            </telerik:RadGrid>



here i need to display the inner detailtable[1] column "autologin" based on the "isactivated" column...

now i have tried by the below way but its showing error.....


protected void rgAdminLogIn_ItemCommand(object source, GridCommandEventArgs e)

    {       
        if (e.CommandName == "ExpandCollapse")
        {
            GridNestedViewItem item = (GridNestedViewItem)e.Item;
            HyperLink hlnkAutoLogin = (HyperLink)item.FindControl("hlnkLogin");
            Label lblActivate = (Label)item.FindControl("lblActivate");
           if (lblActivate.Text == "Activate")
            {
                hlnkAutoLogin.Enabled = true;
            }
            else
            {
               hlnkAutoLogin.Enabled = false;
           }
        }
    }


so my ques is.....

how to get the inner detailtable controls in itemDatabound or itemCommand event?..

 

1 Answer, 1 is accepted

Sort by
0
Jayesh Goyani
Top achievements
Rank 2
answered on 31 Mar 2012, 07:38 AM
Hello Vignesh,

if (e.CommandName == "ExpandCollapse")
        {
            GridDataItem item = (GridDataItem)e.Item;
            if (item.HasChildItems)
            {
                foreach (GridDataItem citem in item.ChildItem.NestedTableViews[0].Items)
                {   // for first child (Detail Table)
                    HyperLink hlnkAutoLogin1 = (HyperLink)citem.FindControl("hlnkLogin");
                    if (citem.HasChildItems)
                    {
                        foreach (GridDataItem ccitem in citem.ChildItem.NestedTableViews[0].Items)
                        {
                            HyperLink hlnkAutoLogin2 = (HyperLink)ccitem.FindControl("hlnkLogin");
                        }
                    }
 
                }
            }
             
        }


Thanks,
Jayesh Goyani
Tags
Grid
Asked by
Vignesh
Top achievements
Rank 1
Answers by
Jayesh Goyani
Top achievements
Rank 2
Share this question
or