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

expand a grid with hierarchy template in code behind

3 Answers 190 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Srikar
Top achievements
Rank 1
Srikar asked on 08 Jul 2013, 03:27 PM
HI,

i have grid with below template and i need to expand all rows in a parent & child grids. Please let me know how can do it.

  <telerik:RadScriptManager ID="RadScriptManager1" runat="server">
    </telerik:RadScriptManager>
    <telerik:RadFormDecorator ID="QsfFromDecorator" runat="server" DecoratedControls="All"
        EnableRoundedCorners="false" />
    <telerik:RadAjaxManager ID="RadAjaxManager1" runat="server">
        <AjaxSettings>
            <telerik:AjaxSetting AjaxControlID="mainTab">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="mainTab" LoadingPanelID="RadAjaxLoadingPanel1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="RadGrid1">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="RadGrid1" LoadingPanelID="RadAjaxLoadingPanel1" />
                </UpdatedControls>
            </telerik:AjaxSetting>
            <telerik:AjaxSetting AjaxControlID="mainTab">
                <UpdatedControls>
                    <telerik:AjaxUpdatedControl ControlID="mainTabMultipages" />
                </UpdatedControls>
            </telerik:AjaxSetting>
        </AjaxSettings>
    </telerik:RadAjaxManager>
    <telerik:RadAjaxLoadingPanel ID="RadAjaxLoadingPanel1" runat="server">
    </telerik:RadAjaxLoadingPanel>
    <div>
        <telerik:RadTabStrip runat="server" ID="mainTab" OnTabClick="mainTab_TabClick" MultiPageID="mainTabMultipages"
            SelectedIndex="0">
        
            <Tabs>
                <telerik:RadTab runat="server" Text="Code Coverage Report" PageViewID="pvCodeCoverage">
                </telerik:RadTab>
            </Tabs>
           
            
             
        </telerik:RadTabStrip>
        <div style="float: right">
            <asp:LinkButton runat="server" ID="lnkExpandAll" Text="Expand All" OnClientClick="ExpandAll(); return false;"  Enabled="<%# EnableExpandAll %>"></asp:LinkButton>
           
        </div>
    </div>


    <telerik:RadMultiPage runat="server" ID="mainTabMultipages" SelectedIndex="0" RenderSelectedPageOnly="false">
       
        <telerik:RadPageView runat="server" ID="pvCodeCoverage">
            <telerik:RadTabStrip runat="server" ID="tbCodeCoverage" MultiPageID="Multipage1"
                SelectedIndex="0">
                <Tabs>
                    <telerik:RadTab runat="server" Text="Details" PageViewID="pvCodeCoverageDetails">
                    </telerik:RadTab>
                </Tabs>
                <Tabs>
                    <telerik:RadTab runat="server" Text="Graph" PageViewID="pvCodeCoverageGraph">
                    </telerik:RadTab>
                </Tabs>
            </telerik:RadTabStrip>
            <telerik:RadMultiPage runat="server" ID="Multipage1" SelectedIndex="0" RenderSelectedPageOnly="false">
                <telerik:RadPageView runat="server" ID="pvCodeCoverageDetails">
                    <telerik:RadGrid AllowSorting="True" runat="server" ID="grdCodeCoverage" OnItemCommand="grdCodeCoverage_ItemCommand"
                        AutoGenerateColumns="false" ShowFooter="true" PageSize="50" AllowMultiRowSelection="False"
                        AllowPaging="True" GridLines="None" ShowGroupPanel="true">
                        <PagerStyle Mode="NumericPages"></PagerStyle>
                        <MasterTableView DataKeyNames="ModuleName" AllowMultiColumnSorting="True" GroupLoadMode="Server">
                            <NoRecordsTemplate>
                                <asp:Label ID="Label1" runat="server" Text="There are no records" />
                            </NoRecordsTemplate>
                            <NestedViewTemplate>
                                <telerik:RadGrid AllowSorting="True" AllowPaging="true" runat="server" OnNeedDataSource="grdClassCodeCoverageDataSourceNeeded"
                                    ID="grdClassCodeCoverage" AutoGenerateColumns="false" ShowFooter="true" EnableLinqExpressions="false"
                                    OnItemCommand="grdClassCodeCoverage_ItemCommand">
                                    <MasterTableView DataKeyNames="ClassName">
                                        <NestedViewTemplate>
                                            <telerik:RadGrid AllowSorting="True" AllowPaging="true" runat="server" OnNeedDataSource="grdMethodCodeCoverageDataSourceNeeded"
                                                ID="grdMethodCodeCoverage" AutoGenerateColumns="false" ShowFooter="true" EnableLinqExpressions="false">
                                                <MasterTableView>
                                                    <Columns>
                                                        <telerik:GridBoundColumn SortExpression="MethodName" HeaderText="Method Name" HeaderButtonType="TextButton"
                                                            DataField="MethodName" UniqueName="MethodName">
                                                        </telerik:GridBoundColumn>
                                                        <telerik:GridBoundColumn SortExpression="BlocksCovered" HeaderText="Covered (Blocks)"
                                                            HeaderButtonType="TextButton" DataField="BlocksCovered" UniqueName="BlocksCovered">
                                                        </telerik:GridBoundColumn>
                                                        <telerik:GridBoundColumn SortExpression="BlocksNotCovered" HeaderText="Not Covered (Blocks)"
                                                            HeaderButtonType="TextButton" DataField="BlocksNotCovered" UniqueName="BlocksNotCovered">
                                                        </telerik:GridBoundColumn>
                                                        <telerik:GridBoundColumn SortExpression="BlocksNotCoveredPercentage" HeaderText="Not Covered (%Blocks)"
                                                            HeaderButtonType="TextButton" DataField="BlocksNotCoveredPercentage" UniqueName="BlocksNotCoveredPercentage">
                                                        </telerik:GridBoundColumn>
                                                        <telerik:GridBoundColumn SortExpression="BlocksCoveredPercentage" HeaderText="Covered (%Blocks)"
                                                            HeaderButtonType="TextButton" DataField="BlocksCoveredPercentage" UniqueName="BlocksCoveredPercentage">
                                                        </telerik:GridBoundColumn>
                                                    </Columns>
                                                </MasterTableView>
                                            </telerik:RadGrid>
                                        </NestedViewTemplate>
                                        <Columns>
                                            <telerik:GridBoundColumn SortExpression="ClassName" HeaderText="Class Name" HeaderButtonType="TextButton"
                                                DataField="ClassName" UniqueName="ClassName">
                                            </telerik:GridBoundColumn>
                                            <telerik:GridBoundColumn SortExpression="BlocksCovered" HeaderText="Covered (Blocks)"
                                                HeaderButtonType="TextButton" DataField="BlocksCovered" UniqueName="BlocksCovered">
                                            </telerik:GridBoundColumn>
                                            <telerik:GridBoundColumn SortExpression="BlocksNotCovered" HeaderText="Not Covered (Blocks)"
                                                HeaderButtonType="TextButton" DataField="BlocksNotCovered" UniqueName="BlocksNotCovered">
                                            </telerik:GridBoundColumn>
                                            <telerik:GridBoundColumn SortExpression="BlocksNotCoveredPercentage" HeaderText="Not Covered (%Blocks)"
                                                HeaderButtonType="TextButton" DataField="BlocksNotCoveredPercentage" UniqueName="BlocksNotCoveredPercentage">
                                            </telerik:GridBoundColumn>
                                            <telerik:GridBoundColumn SortExpression="BlocksCoveredPercentage" HeaderText="Covered (%Blocks)"
                                                HeaderButtonType="TextButton" DataField="BlocksCoveredPercentage" UniqueName="BlocksCoveredPercentage">
                                            </telerik:GridBoundColumn>
                                        </Columns>
                                    </MasterTableView>
                                </telerik:RadGrid>
                            </NestedViewTemplate>
                            <Columns>
                                <telerik:GridBoundColumn SortExpression="ModuleName" HeaderText="Module name" HeaderButtonType="TextButton"
                                    DataField="ModuleName" UniqueName="ModuleName">
                                </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn SortExpression="CoveredBlocks" HeaderText="Covered (Blocks)"
                                    HeaderButtonType="TextButton" DataField="CoveredBlocks" UniqueName="CoveredBlocks">
                                </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn SortExpression="NotCoveredBlocks" HeaderText="Not Covered (Blocks)"
                                    HeaderButtonType="TextButton" DataField="NotCoveredBlocks" UniqueName="NotCoveredBlocks">
                                </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn SortExpression="NotCoveredBlocksPercentage" HeaderText="Not Covered (%Blocks)"
                                    HeaderButtonType="TextButton" DataField="NotCoveredBlocksPercentage" UniqueName="NotCoveredBlocksPercentage">
                                </telerik:GridBoundColumn>
                                <telerik:GridBoundColumn SortExpression="CoveredBlocksPercentage" HeaderText="Covered (%Blocks)"
                                    HeaderButtonType="TextButton" DataField="CoveredBlocksPercentage" UniqueName="CoveredBlocksPercentage">
                                </telerik:GridBoundColumn>
                            </Columns>
                        </MasterTableView>
                    </telerik:RadGrid>
                </telerik:RadPageView>
                <telerik:RadPageView runat="server" ID="pvCodeCoverageGraph">
                    <div>
                        <telerik:RadChart ID="chtCodeCoverage" IntelligentLabelsEnabled="true" runat="server"
                            AutoLayout="true" AutoTextWrap="true">
                        </telerik:RadChart>
                    </div>
                    <div>
                        <telerik:RadChart Width="800" IntelligentLabelsEnabled="true" ID="pieCodeCoverageGraph"
                            runat="server" AutoLayout="true" AutoTextWrap="true">
                        </telerik:RadChart>
                    </div>
                </telerik:RadPageView>
            </telerik:RadMultiPage>
        </telerik:RadPageView>
      
    </telerik:RadMultiPage>




 

3 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 09 Jul 2013, 05:59 AM
Hi Srikar,

I guess you want to expand all the parent and child nodes, I would suggest to set the MasterTableView property HierarchyDefaultExpanded="true" for the Parent and Child nodes to get your requirement. Let know if any concern.

Thanks,
Princy
0
Srikar
Top achievements
Rank 1
answered on 09 Jul 2013, 06:55 AM
Hi,

I need to expand grid rows when "ExpandAll" link is clicked. I am executing below code in the OnClick event  of "ExpandAll" hyper link.

Issues:
1) Below code is expanding only parent grid rows but child grid rows not not expanded. Please refer screenshot for details.
2) Is it possible to achieve the same without "postback" (means in ajax call)?  I have added the hyperlink control & main tab in the RadAjax manager but no luck.

 private void ExpandCollapseGrid(RadGrid grid,bool isExpanded)
        {
            foreach (GridDataItem item in grid.MasterTableView.Items)
            {
                item.Expanded = true;
                if (item.ChildItem != null)
                {
                    item.ChildItem.Expanded = true;
                    foreach (var childNestedView in item.ChildItem.NestedTableViews)
                    {
                        foreach (GridDataItem childNestedViewItem in childNestedView.Items)
                        {
                            childNestedViewItem.Expanded = isExpanded;
                        }
                    }
                }
            }
        }
0
Eyup
Telerik team
answered on 11 Jul 2013, 08:40 AM
Hi Srikar,

You can use the new ExpandAll functionality of RadGrid:
http://demos.telerik.com/aspnet-ajax/grid/examples/generalfeatures/expandall/defaultcs.aspx

Hope this helps.

Regards,
Eyup
Telerik
If you want to get updates on new releases, tips and tricks and sneak peeks at our product labs directly from the developers working on the RadControls for ASP.NET AJAX, subscribe to the blog feed now.
Tags
Grid
Asked by
Srikar
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Srikar
Top achievements
Rank 1
Eyup
Telerik team
Share this question
or