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

Add control itemdatabound event

3 Answers 197 Views
Grid
This is a migrated thread and some comments may be shown as answers.
René
Top achievements
Rank 1
René asked on 25 Oct 2012, 02:54 PM

Hello group,

I'am trying to add a gridview to a radgrid detailtable from code behind. De radgrid is databound from the code behind with datatables. Now i want to add a gridview on the ItemDataBound event of the radgrid. I have the following snippet aspx:

<telerik:GridTableView Name="Sales" AutoGenerateColumns="false" Width="100%" DataKeyNames="DetailCode,DetailSubCode"
                                       ShowHeadersWhenNoRecords="false" HierarchyDefaultExpanded="true" HierarchyLoadMode="ServerOnDemand">
                                       <DetailTables>
                                           <telerik:GridTableView Name="Planning">
                                               <ItemTemplate>
                                               <asp:GridView ID="GridView1" runat="server">
                                                   </asp:GridView>
                                               </ItemTemplate>
                                           </telerik:GridTableView>
                                           <telerik:GridTableView AutoGenerateColumns="false" DataKeyNames="ProdHeaderDossierCode"
                                               HierarchyDefaultExpanded="false" Name="ProdDossier">
                                               <ParentTableRelation>
                                                   <telerik:GridRelationFields DetailKeyField="DetailCode" MasterKeyField="DetailCode" />
                                                   <telerik:GridRelationFields DetailKeyField="DetailSubCode" MasterKeyField="DetailSubCode" />
                                               </ParentTableRelation>
                                               <Columns>
                                                   <telerik:GridBoundColumn DataField="ProdHeaderDossierCode" HeaderText="ProdDossier">
                                                   </telerik:GridBoundColumn>
                                                   <telerik:GridBoundColumn DataField="ProdStatusCode" HeaderText="St.">
                                                   </telerik:GridBoundColumn>
                                                   <telerik:GridBoundColumn DataField="StartDate" HeaderText="Start">
                                                   </telerik:GridBoundColumn>
                                                   <telerik:GridBoundColumn DataField="EndDate" HeaderText="Eind">
                                                   </telerik:GridBoundColumn>
                                               </Columns>
                                               <NoRecordsTemplate>
                                                   <div style="text-align: center;">
                                                       Geen gegevens</div>
                                               </NoRecordsTemplate>
                                               <DetailTables>
                                                   <telerik:GridTableView Name="Oper" AutoGenerateColumns="false" Width="100%" DataKeyNames="ProdHeaderDossierCode"
                                                       ShowHeadersWhenNoRecords="false" HierarchyDefaultExpanded="false" HierarchyLoadMode="ServerOnDemand">
                                                       <ParentTableRelation>
                                                           <telerik:GridRelationFields DetailKeyField="ProdHeaderDossierCode" MasterKeyField="ProdHeaderDossierCode" />
                                                       </ParentTableRelation>
                                                       <Columns>
                                                           <telerik:GridBoundColumn DataField="MachGrpCode" HeaderText="Bew.">
                                                           </telerik:GridBoundColumn>
                                                           <telerik:GridBoundColumn DataField="ProdBooStatusCode" HeaderText="St.">
                                                           </telerik:GridBoundColumn>
                                                           <telerik:GridBoundColumn DataField="MachPlanTime" HeaderText="Bew.PT">
                                                           </telerik:GridBoundColumn>
                                                           <telerik:GridBoundColumn DataField="StartDate" HeaderText="Start">
                                                           </telerik:GridBoundColumn>
                                                           <telerik:GridBoundColumn DataField="EndDate" HeaderText="Eind">
                                                           </telerik:GridBoundColumn>
                                                           <telerik:GridCheckBoxColumn DataField="OperStartedInd" HeaderText="Gestart" ItemStyle-HorizontalAlign="Center">
                                                           </telerik:GridCheckBoxColumn>
                                                           <telerik:GridCheckBoxColumn DataField="OperFinishedInd" HeaderText="Gereed" ItemStyle-HorizontalAlign="Center">
                                                           </telerik:GridCheckBoxColumn>
                                                       </Columns>
                                                       <NoRecordsTemplate>
                                                           <div style="text-align: center;">
                                                               Geen gegevens</div>
                                                       </NoRecordsTemplate>
                                                   </telerik:GridTableView>
                                               </DetailTables>
                                           </telerik:GridTableView>
                                       </DetailTables>




And the code for ItemDataBound:



    Protected Sub RgNav_ItemDataBound(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridItemEventArgs) Handles RgNav.ItemDataBound
        If e.Item.ItemType = GridItemType.Item Then
            If e.Item.OwnerTableView.Name = "Sales" Then
                Dim DetailCode As String = e.Item.Cells(2).Text
                Dim DetailSubCode As String = e.Item.Cells(3).Text
                For Each Table As GridTableView In e.Item.OwnerTableView.DetailTables
                    If Table.Name = "Planning" Then
                        Dim Gv As GridView = Table.FindControl("GridView1")
                        Gv.DataSource = "Something"
                        Table.Controls.Add(Gv)
                    End If
                Next
            End If
        End If
    End Sub

Any help is welcome.

Thanks in advance,

René

3 Answers, 1 is accepted

Sort by
0
Princy
Top achievements
Rank 2
answered on 26 Oct 2012, 06:33 AM
Hi,

I suppose you want to bind the GridView in the ItemDataBound event. Please check the code snippet.

C#:
Protected Sub RadGrid1_ItemDataBound(sender As Object, e As GridItemEventArgs)
    If TypeOf e.Item Is GridDataItem Then
        If e.Item.OwnerTableView.Name = "Planning" Then
            Dim ditem As GridDataItem = DirectCast(e.Item, GridDataItem)
            Dim Gv As GridView = DirectCast(ditem.FindControl("GridView1"), GridView)
            Gv.DataSourceID = "Something"
        End If
    End If
End Sub

Thanks,
Princy.
0
René
Top achievements
Rank 1
answered on 26 Oct 2012, 06:52 AM
Hi Prince,

Thanks for the reply

I placed you're code in my ItemDataBound event and ajusted it a little bit. The problem is that my GridView witch is declared in the aspx file cannot be found. The object remains nothing.

Declaration of aspx gridview:

<telerik:RadGrid ID="RgNav" runat="server" CellSpacing="0" GridLines="None" Skin="Office2007"
                            AutoGenerateColumns="false" HierarchyLoadMode="ServerOnDemand">
                            <HeaderStyle Height="21" Wrap="false" />
                            <ItemStyle Height="21" />
                            <AlternatingItemStyle Height="21" />
                            <MasterTableView DataKeyNames="DossierCode" HierarchyDefaultExpanded="true" Name="Dossier"
                                ItemStyle-Wrap="false" HeaderStyle-Wrap="false" HierarchyLoadMode="ServerOnDemand">
                                <HeaderStyle Height="21" Wrap="false" />
                                <ItemStyle Height="21" />
                                <AlternatingItemStyle Height="21" />
                                <DetailTables>
                                    <telerik:GridTableView Name="Sales" AutoGenerateColumns="false" Width="100%" DataKeyNames="DetailCode,DetailSubCode"
                                        ShowHeadersWhenNoRecords="false" HierarchyDefaultExpanded="true" HierarchyLoadMode="ServerOnDemand">
                                        <DetailTables>
                                            <telerik:GridTableView Name="Planning">
                                                <ItemTemplate>
                                                <asp:GridView ID="GridView1" runat="server">
                                                    </asp:GridView>
                                                </ItemTemplate>
                                            </telerik:GridTableView>

My ajusted ItemDataBound code:

 If e.Item.ItemType = GridItemType.Item Then
            If e.Item.OwnerTableView.Name = "Sales" Then
                Dim DetailCode As String = e.Item.Cells(2).Text
                Dim DetailSubCode As String = e.Item.Cells(3).Text
                For Each Table As GridTableView In e.Item.OwnerTableView.DetailTables
                    If Table.Name = "Planning" Then
                        Dim ditem As GridDataItem = DirectCast(e.Item, GridDataItem)
                        Dim Gv As GridView = DirectCast(ditem.FindControl("GridView1"), GridView)
                        Gv.DataSource = GenerateGrid_v2("010", "000")
                    End If
                Next
            End If
        End If

Could you please help me with this?

Thanks in advance,

René
0
Princy
Top achievements
Rank 2
answered on 29 Oct 2012, 08:58 AM
Hi,

Please try the following code snippet.

C#:
Protected Sub RadGrid1_ItemDataBound(sender As Object, e As GridItemEventArgs)
    If TypeOf e.Item Is GridDataItem Then
        If e.Item.OwnerTableView.Name = "Sales" Then
            Dim DetailCode As String = e.Item.Cells(2).Text
            Dim DetailSubCode As String = e.Item.Cells(3).Text
        End If
        If e.Item.OwnerTableView.Name = "Planning" Then
            Dim ditem As GridDataItem = DirectCast(e.Item, GridDataItem)
            Dim Gv As GridView = DirectCast(ditem.FindControl("GridView1"), GridView)
            Gv.DataSourceID = "your data source"
 
        End If
    End If
End Sub

Thanks,
Princy.
Tags
Grid
Asked by
René
Top achievements
Rank 1
Answers by
Princy
Top achievements
Rank 2
René
Top achievements
Rank 1
Share this question
or