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

Accessing controls in CommandItemTemplate of child grid

2 Answers 115 Views
Grid
This is a migrated thread and some comments may be shown as answers.
wdudek
Top achievements
Rank 1
wdudek asked on 29 May 2014, 08:54 PM
In the following code snippet I have a child grid that has a hyperlink in the CommandItemTemplate, how can I access this so that I can set the url for the hyperlink (It needs the id field from the parent row in it)? I've tried several places such as PreRender and OnItemDataBound but I haven't been able to find anywhere where FindControl doesn't return null.  

This was my last try in the Prerender event of the parent Grid.
protected void radPurchaseOrder_PreRender(object sender, EventArgs e)
    {
        foreach (GridDataItem item in radPurchaseOrder.Items)
        {
            if (item.Expanded)
            {
                HyperLink link = item.FindControl("linkDoInvoiceExport") as HyperLink;
                if (link != null)
                {
                        //do stuff here if the above ever isn't null
                }
 
 
            }
        }
 
 
    }


<telerik:RadGrid ID="radPurchaseOrder" runat="server" AllowPaging="True" ClientSettings-ClientEvents-OnGridCreated="GridCreated"
           AllowSorting="True" AutoGenerateColumns="False" enableajax="true" OnNeedDataSource="radPurchaseOrder_NeedDataSource"
           ShowGroupPanel="True" OnItemDataBound="radPurchaseOrder_ItemDataBound" HeaderStyle-HorizontalAlign="Center"
           OnDataBound="radPurchaseOrder_DataBound" OnDetailTableDataBind="radPurchaseOrder_DetailTableDataBind" AllowFilteringByColumn="True" GridLines="None" CellSpacing="0"  OnItemCreated="radPurchaseOrder_ItemCreated"
            OnPreRender="radPurchaseOrder_PreRender">
           <ExportSettings>
               <Pdf PageBottomMargin="" PageFooterMargin="" PageHeaderMargin="" PageHeight="11in"
                   PageLeftMargin="" PageRightMargin="" PageTopMargin="" PageWidth="8.5in" />
           </ExportSettings>
           <HeaderStyle HorizontalAlign="Center" />
           <ClientSettings AllowColumnsReorder="True" AllowDragToGroup="True" ReorderColumnsOnClient="True">
               <ClientEvents OnGridCreated="GridCreated" />
               <Scrolling AllowScroll="True" UseStaticHeaders="true" />
               <Resizing AllowColumnResize="True" AllowRowResize="False" EnableRealTimeResize="True" />
           </ClientSettings>
           <MasterTableView Width="100%" TableLayout="Fixed" DataKeyNames="OrderNumber, LineItemNumber" HierarchyLoadMode="ServerOnDemand" Name="PoData">
               <RowIndicatorColumn>
                   <HeaderStyle Width="20px" />
               </RowIndicatorColumn>
               <ExpandCollapseColumn>
                   <HeaderStyle Width="20px" />
               </ExpandCollapseColumn>
               <DetailTables>
                   <telerik:GridTableView runat="server" TableLayout="Fixed" CommandItemDisplay="Top" Name="DistributionOrderDetail" DataKeyNames="OrderNumber,LineItemNumber" IsFilterItemExpanded="false" ItemStyle-HorizontalAlign="Center" AlternatingItemStyle-HorizontalAlign="Center">
                       <ParentTableRelation>
                           <telerik:GridRelationFields DetailKeyField="OrderNumber" MasterKeyField="OrderNumber" />
                           <telerik:GridRelationFields DetailKeyField="LineItemNumber" MasterKeyField="LineItemNumber" />
                       </ParentTableRelation>
                       <CommandItemTemplate>
                           <asp:HyperLink runat="server" ID="linkDoInvoiceExport" Text="Detail Report"></asp:HyperLink>
                       </CommandItemTemplate>
                       <Columns>
                           <telerik:GridHyperLinkColumn UniqueName="DistributionOrderNumber" DataNavigateUrlFields="DistributionOrderNumber" HeaderText="DO #"
                               DataNavigateUrlFormatString="~/search/DistributionOrder.aspx?@distributionOrderNumber={0}" DataTextField="DistributionOrderNumberFmt">
                           </telerik:GridHyperLinkColumn>
                           <telerik:GridHyperLinkColumn UniqueName="MajorDistributionOrderNumber" DataNavigateUrlFields="MajorDistributionOrderNumber" HeaderText="Major DO #"
                               DataNavigateUrlFormatString="~/search/DistributionOrder.aspx?@majorDistributionNumber={0}" DataTextField="MajorDistributionOrderNumberFmt">
                           </telerik:GridHyperLinkColumn>


Thanks
Bill

2 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 30 May 2014, 05:40 AM
Hi,

Please try the following code snippet to access the CommandItemTemplate control of a DetailTable:

C#:
protected void RadGrid1_ItemDataBound(object sender, GridItemEventArgs e)
{
  if (e.Item is GridCommandItem && e.Item.OwnerTableView.Name == "DistributionOrderDetail")
  {
    GridCommandItem cmdItem = (GridCommandItem)e.Item;
    //Access the Hyperlink
    HyperLink hylReport = (HyperLink)cmdItem.FindControl("linkDoInvoiceExport");       
  }
}

Thanks,
Princy
0
wdudek
Top achievements
Rank 1
answered on 30 May 2014, 02:13 PM
That worked perfect.

Thanks!
Tags
Grid
Asked by
wdudek
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
wdudek
Top achievements
Rank 1
Share this question
or