accessing the detailed Aspxgirdview in master Gridview

19 Views Asked by At

I have master detail AspxGridview. I want to access of a detailed GridView so I did as following

 <dx:ASPxGridView ID="wdtgProcess" runat="server" AutoGenerateColumns="false" EnableCallBacks="false"
 CssClass="searchResultsGrid" KeyFieldName="UNIV_SCHED" Width="100%" SettingsBehavior-AllowSelectByRowClick="true"
 SettingsBehavior-ProcessSelectionChangedOnServer="true" OnDetailRowExpandedChanged="wdtgOBB_DetailRowExpandedChanged"
 SettingsDetail-AllowOnlyOneMasterRowExpanded="true">
 <Columns>
     <dx:GridViewDataTextColumn Visible="false" FieldName="UNIQVAL"></dx:GridViewDataTextColumn>
     <dx:GridViewDataTextColumn Caption="Test8" FieldName="DEFPROC">
         <DataItemTemplate>
             <asp:LinkButton ID="wlnkTipoProcesso" CommandName="ProcessiBatch" runat="server" Visible="true" CommandArgument="" Text='Test7'>                                   
             </asp:LinkButton>
         </DataItemTemplate>
     </dx:GridViewDataTextColumn>
     <dx:GridViewDataTextColumn Caption="Test6" FieldName="DATESTART"></dx:GridViewDataTextColumn>                
                   
 </Columns>
 <Templates>
     <DetailRow>
         <asp:UpdatePanel ID="upDatePanelTab2" runat="server" cssclass="dialogBoxBody">
             <ContentTemplate>                    
                 <ajaxToolkit:TabContainer ID="tabContainer2" runat="server">
                   
                     <ajaxToolkit:TabPanel ID="tab29" runat="server">
                         <HeaderTemplate>
                             <asp:Literal ID="titleIdtab29" runat="server" Text="Test5"></asp:Literal>
                         </HeaderTemplate>
                         <ContentTemplate>
                             <dx:ASPxGridView ID="wdtgSez" ClientIDMode="Static"
                                 SelectionChanged="true"
                                 runat="server" CssClass="searchResultsGrid" Width="100%"
                                 OnBeforePerformDataSelect="wdtgSez_OnBeforePerformDataSelect"
                                 KeyFieldName="UNIQObject">
                                 <Columns>
                                     <dx:GridViewDataTextColumn Caption="Test4" FieldName="DEFPOLICY" Width="14%" CellStyle-HorizontalAlign="Left">
                                         <DataItemTemplate>
                                          
                                             <asp:LinkButton ID="wlnkTypeErr" CommandName='Test2' runat="server" Visible="true" CommandArgument="" Text='Test3'>                                   
                                             </asp:LinkButton>
                                          
                                         </DataItemTemplate>
                                     </dx:GridViewDataTextColumn>
                                     <dx:GridViewDataTextColumn Caption="Test1" FieldName="MAX_MOV" Width="14%" CellStyle-HorizontalAlign="Left" Visible="false">
                                     </dx:GridViewDataTextColumn>

                                   
                                 </Columns>
                                 <Settings ShowFilterRow="true" ShowHeaderFilterButton="true" ShowFooter="true" AutoFilterCondition="Contains" />
                                 <SettingsDetail ShowDetailRow=" true" />
                             </dx:ASPxGridView>
                         </ContentTemplate>
                     </ajaxToolkit:TabPanel>

                   
                 </ajaxToolkit:TabContainer>
             </ContentTemplate>
         </asp:UpdatePanel>
     </DetailRow>
 </Templates>
 <Settings ShowFilterRow="true" ShowHeaderFilterButton="true" ShowFooter="true" />
 <SettingsDetail ShowDetailRow="true" />
 <SettingsPager ShowEmptyDataRows="true" AlwaysShowPager="True"></SettingsPager>
</dx:ASPxGridView>

I did this

  // Find the detail row  wdtgProcessiBatch
  GridViewDetailRowTemplateContainer detailRow = parentGridView.FindDetailRowTemplateControl(e.VisibleIndex, "wdtgSezioni") as GridViewDetailRowTemplateContainer;

protected void wdtgOBB_DetailRowExpandedChanged(object sender, ASPxGridViewDetailRowEventArgs e)
{
  if (detailRow != null)
   {
 
 ASPxGridView childGridView = detailRow.FindControl("wdtgSez") as ASPxGridView;
  //childGridView  is always null
 if (childGridView != null)
 {                
     
 }

}

how can I access wdtgSez aspgixgridview

1

There are 1 best solutions below

0
nnmmss On

I did as following

 ASPxGridView parentGridView = sender as ASPxGridView;

object keyValue = parentGridView.GetRowValues(e.VisibleIndex, parentGridView.KeyFieldName);

TabContainer tabContainer = parentGridView.FindDetailRowTemplateControl(e.VisibleIndex, "tabContainer2") as TabContainer;

if (tabContainer != null)
{
 TabPanel tabPanel = tabContainer.FindControl("tab29") as TabPanel;

 if (tabPanel != null)
 {
     ASPxGridView childGridView = tabPanel.FindControl("wdtgSez") as ASPxGridView;

     if (childGridView != null)
     {
         GridViewDataTextColumn column = childGridView.Columns["MAX_MOV"] as GridViewDataTextColumn;

         if (column != null)
         {
             column.Caption = "New Caption";
         }
     }

 }
}