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

How to get NestedViewTemplate radgrid in client side

5 Answers 406 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Dhamodharan
Top achievements
Rank 1
Dhamodharan asked on 15 Mar 2011, 10:04 AM
Hi,

I have NestedTemplate radgrid in my application. i want how to get Nestedtemplate radgrid in client side.

Please see the attached screenshot.

i want two items.

1. how to get Nestedtemplate radgrid
2. how to get parent row which the Nestedtemplate radgrid item selected.

both i want in client side.

Please check the attached screen shot.

Here is my code.

<telerik:RadGrid ID="rgAddPlans" runat="server" AutoGenerateColumns="False" DataSourceID="sdsDispayPlans" DataKeyNames="sp_pln_id"
                            Width="740px" GridLines="Both">
                            <MasterTableView HierarchyDefaultExpanded="true" AutoGenerateColumns="false" CommandItemDisplay="Top"
                                DataKeyNames="sp_pln_id" ClientDataKeyNames="sp_pln_id" >                            
                              <Columns>                                  
                                    <telerik:GridTemplateColumn HeaderText="Waive" HeaderStyle-Font-Bold="true">
                                        <ItemTemplate>
                                            <asp:CheckBox ID="rbWaive" runat="server" AutoPostBack="false" />                                        
                                        </ItemTemplate>
                                        <ItemStyle HorizontalAlign="Center" />
                                        <HeaderStyle Width="60px" HorizontalAlign="Center" />
                                    </telerik:GridTemplateColumn>
                                </Columns>
                                <NestedViewTemplate>
                                    <telerik:RadGrid ID="rgFlex" runat="server" AutoGenerateColumns="False" OnItemDataBound="rgFlex_OnItemDataBound"
                                        DataSourceID="sdsFlexBenefit" Width="700px" GridLins="Both">
                                        <MasterTableView AutoGenerateColumns="false" CommandItemDisplay="Top">                              
                                            <Columns>                                                                                         
                                                 <telerik:GridTemplateColumn HeaderText="Waive" HeaderStyle-Font-Bold="true">
                                        <ItemTemplate>
                                            <asp:CheckBox ID="cbFlexWaive" runat="server"  AutoPostBack="false" />
                                        </ItemTemplate>
                                        <ItemStyle HorizontalAlign="Center" />
                                        <HeaderStyle Width="30px" HorizontalAlign="Center" />
                                    </telerik:GridTemplateColumn>
                                            </Columns>                                            
                                        </MasterTableView>                                   
                                    </telerik:RadGrid>
                                </NestedViewTemplate>
                            </MasterTableView>                       
                        </telerik:RadGrid>

Thanks in advance,
Dhamu.

5 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 15 Mar 2011, 11:13 AM
Hello Dhamu,

Please go through the following forum which discussed the similar scenario. Hope it will help.
Traversing nested tables on the client

Thanks,
Princy.
0
Dhamodharan
Top achievements
Rank 1
answered on 15 Mar 2011, 11:26 AM
Hi Princy,

I am using NestedviewTemplate radgrid. so i am not able get row.get_nestedViews()[0];

it is coming undefined. Please check above my code and let me know how to get child grid when clicking parent grid row.


Thanks in advance,
Dhamu.
0
Chau
Top achievements
Rank 1
answered on 18 May 2011, 11:07 PM
Hi Dhamu,
Have you found a solution to your issue?  I am having the same issue - trying to get to the inner grid control inside a NestedViewTemplate on the client side.
Let me know if you got yours working.
Thanks,
Chau
0
Dhamodharan
Top achievements
Rank 1
answered on 19 May 2011, 08:06 AM
Hello Chau,

Here i have attached the code. please check and let me know if you have any queries.

<telerik:RadGrid ID="rgAddPlans" runat="server" AutoGenerateColumns="False" DataSourceID="sdsDispayPlans" DataKeyNames="sp_pln_id"
                            Width="740px" GridLines="Both">
                            <MasterTableView HierarchyDefaultExpanded="true" AutoGenerateColumns="false" CommandItemDisplay="Top"
                                DataKeyNames="sp_pln_id" ClientDataKeyNames="sp_pln_id" Width="100%" >                                          
                                <Columns>
                                    <telerik:GridTemplateColumn HeaderText="Plans" HeaderStyle-Font-Bold="true" UniqueName="unPlans">
                                        <ItemTemplate>
                                          <asp:Label ID="lblPlanDesc" runat="server" SkinID="NoBold" Text='<%# Eval("description") %>'
                                                Width="220px"></asp:Label>                                          
                                        </ItemTemplate>
                                        <HeaderStyle Width="170px" HorizontalAlign="Center" />
                                    </telerik:GridTemplateColumn>
                                
                                    <telerik:GridTemplateColumn HeaderText="Waive" HeaderStyle-Font-Bold="true">
                                        <ItemTemplate>
                                            <asp:CheckBox ID="cbWaive" runat="server" AutoPostBack="false" />                                        
                                        </ItemTemplate>
                                        <ItemStyle HorizontalAlign="Center" />
                                        <HeaderStyle Width="50px" HorizontalAlign="Center" />
                                    </telerik:GridTemplateColumn>
                                </Columns>
                                <NestedViewTemplate>
                                    <telerik:RadGrid ID="rgFlex" runat="server" AutoGenerateColumns="False"
                                        DataSourceID="sdsFlexBenefit" Width="700px" GridLins="Both">
                                        <MasterTableView AutoGenerateColumns="false" CommandItemDisplay="Top">
                                            <CommandItemSettings ExportToPdfText="Export to Pdf"></CommandItemSettings>
                                            <Columns>
                                                <telerik:GridTemplateColumn HeaderText="Benefit" HeaderStyle-Font-Bold="true" HeaderStyle-HorizontalAlign="Center" UniqueName="Plans">
                                                    <ItemTemplate>
                                                        <asp:Label ID="lblFlenBenefit" SkinID="NoBold" runat="server" Text='<%# Eval("flex_benefit") %>'></asp:Label>                                                     
                                                    </ItemTemplate>
                                                </telerik:GridTemplateColumn>                                                                                             
                                                 <telerik:GridTemplateColumn HeaderText="Waive" HeaderStyle-Font-Bold="true">
                                        <ItemTemplate>
                                            <asp:CheckBox ID="cbFlexWaive" runat="server"  AutoPostBack="false" />
                                        </ItemTemplate>
                                        <ItemStyle HorizontalAlign="Center" />
                                        <HeaderStyle Width="30px" HorizontalAlign="Center" />
                                    </telerik:GridTemplateColumn>
                                            </Columns>                                            
                                        </MasterTableView>                                   
                                    </telerik:RadGrid>
                                </NestedViewTemplate>
                            </MasterTableView>                       
                        </telerik:RadGrid>

in code behind;
---------------------
Protected Sub rgAddPlans_ItemDataBound(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridItemEventArgs) Handles rgAddPlans.ItemDataBound
 If TypeOf e.Item Is GridNestedViewItem Then
            'get flex grid and assining values from db
            Dim item As GridNestedViewItem = DirectCast(e.Item, GridNestedViewItem)
            Dim rgFlexGrid As RadGrid = DirectCast(item.FindControl("rgFlex"), RadGrid)
            If rgFlexGrid.MasterTableView.Items.Count > 0 Then
                Dim lblPlanDesc As Label = CType(item.ParentItem.FindControl("lblPlanDesc"), Label)               
                Dim waiveStatus As CheckBox = CType(item.ParentItem.FindControl("cbWaive"), CheckBox)              
                waiveStatus.Attributes.Add("onclick", String.Format("return confirmFlexMsg(this.id,'{0}','{1}','{2}');", lblPlanDesc.ClientID, item.ParentItem.ItemIndex, rgFlexGrid.ClientID))
     end if
end if
end sub

java Script
----------------
 function confirmFlexMsg(cbWaive, lblPln, index, childGrid) {
                      var chkBoxWaive = document.getElementById(cbWaive);                    
                      var plnName = document.getElementById(lblPln).innerHTML;
                      var grid = $find("<%=rgAddPlans.ClientID %>");
                      var MasterTable = grid.get_masterTableView();
                      var row = MasterTable.get_dataItems()[index];        
                      var childGrid = $find(childGrid);
                      if (chkBoxWaive.checked) {
                          if (confirm("Are you sure want to waive " + plnName + " plan?") == true) {                   
                              if (childGrid != null) {
                                  for (var i = 0; i < childGrid.get_masterTableView().get_dataItems().length; i++) {       
                                      var cbFlexWaive = childGrid.get_masterTableView().get_dataItems()[i].findElement("cbFlexWaive");                             
                                      cbFlexWaive.checked = true;                                    
                                  }
                              }
                              return true;
                          }
                          else {
                              return false;
                          }
                      }
                      else {                        
                          if (childGrid != null) {
                              for (var i = 0; i < childGrid.get_masterTableView().get_dataItems().length; i++) {                                 
                                  var cbFlexWaive = childGrid.get_masterTableView().get_dataItems()[i].findElement("cbFlexWaive")
                                  cbFlexWaive.checked = false;                                
                              }
                          }
                      }
                  }


Thanks,
Dhamu.
0
Chau
Top achievements
Rank 1
answered on 19 May 2011, 02:19 PM
Thank you, Dhamu, for your prompt reply!  That works!
Tags
Grid
Asked by
Dhamodharan
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
Dhamodharan
Top achievements
Rank 1
Chau
Top achievements
Rank 1
Share this question
or