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

[Solved] Loosing Template Column contents

2 Answers 107 Views
Grid
This is a migrated thread and some comments may be shown as answers.
Syed
Top achievements
Rank 1
Syed asked on 24 Nov 2009, 10:47 PM
Hi, I have a grid with nestedviewtemplate , it works fine but when I click on expand icon on any record it shows the sub grid but loosing content of my main grid template columns.
<telerik:RadScriptManager ID="ScriptManager1" runat="server"></telerik:RadScriptManager> 
    <telerik:RadGrid ID="RadGrid1" Width = "100%" runat="server" Height"100%"     
        AutoGenerateColumns="False" GridLines="None"    
        OnItemDataBound="RadGrid1_ItemDataBound" Skin="WebBlue" > 
<MasterTableView> 
 
<RowIndicatorColumn> 
<HeaderStyle Width="20px"></HeaderStyle> 
</RowIndicatorColumn> 
<NestedViewTemplate> 
<asp:Panel runat="server" ID="InnerContainer" ToolTip='<%# Eval("EventHour") %>' Visible="false">  
    <asp:Label ID="lblEventHour" runat="server" Visible="false" Text='<%# Eval("EventHour") %>'></asp:Label> 
    <telerik:RadGrid ID="RadGrid2" Width = "100%" runat="server" Height"100%"     
        AutoGenerateColumns="False" GridLines="None" OnNeedDataSource="RadGrid2_NeedDataSource"  Skin="WebBlue" ShowHeader="false" OnItemDataBound="RadGrid2_ItemDataBound">  
        <MasterTableView ShowHeader="false" AutoGenerateColumns = "false"  > 
        <Columns> 
        <telerik:GridBoundColumn UniqueName="CameraId" Visible="false" DataField="CameraId"></telerik:GridBoundColumn> 
        <telerik:GridBoundColumn UniqueName="ServerId" Visible="false" DataField="ServerId"></telerik:GridBoundColumn> 
        <telerik:GridTemplateColumn UniqueName="CameraColumn" Groupable="false">  
        <HeaderStyle Width="18%" HorizontalAlign = "Center" /> 
        <ItemStyle HorizontalAlign="Center" /> 
        <ItemTemplate> 
            <asp:Label ID="CameraName" runat="server" Width="80px" /> 
        </ItemTemplate> 
        </telerik:GridTemplateColumn> 
        <telerik:GridTemplateColumn UniqueName="SliderColumn1" Groupable="false">  
        <HeaderStyle Width="432px" /> 
        <ItemStyle HorizontalAlign="Center" /> 
        <ItemTemplate> 
        <asp:PlaceHolder ID="SliderPlaceHolder1" runat="server"></asp:PlaceHolder> 
        </ItemTemplate> 
        </telerik:GridTemplateColumn> 
        <telerik:GridTemplateColumn UniqueName="EventActions" Groupable="false">  
        <HeaderStyle Width="15%" HorizontalAlign="Center" /> 
        <ItemStyle HorizontalAlign="Center" /> 
        <ItemTemplate> 
         <asp:PlaceHolder ID="EAPlaceHolder1" runat="server"></asp:PlaceHolder> 
        </ItemTemplate> 
        </telerik:GridTemplateColumn> 
        <telerik:GridTemplateColumn UniqueName="TotalDuration1" Groupable="false">  
        <HeaderStyle Width="12%" HorizontalAlign="Center"/>  
        <ItemStyle HorizontalAlign="Center" /> 
        <ItemTemplate> 
        <asp:Label ID="TotalDuration1" runat="server" Width="80px" /> 
        </ItemTemplate> 
        </telerik:GridTemplateColumn> 
        <telerik:GridTemplateColumn UniqueName="TotalSize1" Groupable="false">  
        <HeaderStyle Width="10%" HorizontalAlign="Center"/>  
        <ItemStyle HorizontalAlign="Center" /> 
        <ItemTemplate> 
        <asp:Label ID="TotalSize1" runat="server" Width="80px" /> 
        </ItemTemplate> 
        </telerik:GridTemplateColumn> 
          
    </Columns> 
    </MasterTableView> 
    </telerik:RadGrid> 
</asp:Panel> 
</NestedViewTemplate> 
<ExpandCollapseColumn> 
<HeaderStyle Width="20px"></HeaderStyle> 
</ExpandCollapseColumn> 
    <Columns> 
        <telerik:GridBoundColumn UniqueName="EvnetHour" Visible="false" DataField="EventHour"></telerik:GridBoundColumn> 
        <telerik:GridBoundColumn UniqueName="EventCount" Visible="false" DataField="EventCount"></telerik:GridBoundColumn> 
        <telerik:GridTemplateColumn HeaderText ="Start Time" UniqueName="StartTime" Groupable="false">  
        <HeaderStyle Width="18%" HorizontalAlign = "Center" /> 
        <ItemStyle HorizontalAlign="Center" /> 
        <ItemTemplate> 
            <asp:Label ID="HourLabel" runat="server" Width="80px" /> 
        </ItemTemplate> 
        </telerik:GridTemplateColumn> 
        <telerik:GridTemplateColumn UniqueName="SliderColumn" Groupable="false">  
        <HeaderStyle Width="432px" /> 
        <ItemStyle HorizontalAlign="Center" /> 
        <ItemTemplate> 
        <asp:PlaceHolder ID="SliderPlaceHolder" runat="server"></asp:PlaceHolder> 
        </ItemTemplate> 
        </telerik:GridTemplateColumn> 
        <telerik:GridTemplateColumn HeaderText="Event Actions" UniqueName="EventActions" Groupable="false">  
        <HeaderStyle Width="15%" HorizontalAlign="Center" /> 
        <ItemStyle HorizontalAlign="Center" /> 
        <ItemTemplate> 
         <asp:PlaceHolder ID="EAPlaceHolder" runat="server"></asp:PlaceHolder> 
        </ItemTemplate> 
        </telerik:GridTemplateColumn> 
        <telerik:GridTemplateColumn HeaderText="Total Duration" UniqueName="TotalDuration" Groupable="false">  
        <HeaderStyle Width="12%" HorizontalAlign="Center"/>  
        <ItemStyle HorizontalAlign="Center" /> 
        <ItemTemplate> 
        <asp:Label ID="TotalDuration" runat="server" Width="80px" /> 
        </ItemTemplate> 
        </telerik:GridTemplateColumn> 
        <telerik:GridTemplateColumn HeaderText="Total Size" UniqueName="TotalSize" Groupable="false">  
        <HeaderStyle Width="10%" HorizontalAlign="Center"/>  
        <ItemStyle HorizontalAlign="Center" /> 
        <ItemTemplate> 
        <asp:Label ID="TotalSize" runat="server" Width="80px" /> 
        </ItemTemplate> 
        </telerik:GridTemplateColumn> 
          
    </Columns> 
</MasterTableView> 
 
        <HeaderStyle Font-Names="Verdana" Font-Size="X-Small" BorderStyle="None"   
            Wrap="False" /> 
 
        <ClientSettings> 
            <Scrolling AllowScroll="True" ScrollHeight="100%" UseStaticHeaders="True" /> 
        </ClientSettings> 
 
<FilterMenu EnableTheming="True">  
<CollapseAnimation Type="OutQuint" Duration="200"></CollapseAnimation> 
</FilterMenu> 
    </telerik:RadGrid> 
on Item databound event I am adding some pictures in template columns but whenever I click on plus icon those pictures gone and only lable columns shows up. Any idea
My item Data Bound Code
Protected Sub RadGrid1_ItemDataBound(ByVal sender As Object, ByVal e As Telerik.Web.UI.GridItemEventArgs) Handles RadGrid1.ItemDataBound  
        If Not arrServers Is Nothing Then  
            If TypeOf e.Item Is Telerik.Web.UI.GridDataItem Then  
 
                Dim mySQLConnector As New SQLConnector  
                Dim item As Telerik.Web.UI.GridDataItem = DirectCast(e.Item, Telerik.Web.UI.GridDataItem)  
 
                Dim HourIndex As Integer = CInt(item.GetDataKeyValue("EventHour"))  
                Dim lbl As Label = CType(e.Item.FindControl("HourLabel"), Label)  
                Dim lblDuration As Label = CType(e.Item.FindControl("TotalDuration"), Label)  
                Dim lblTotalSize As Label = CType(e.Item.FindControl("TotalSize"), Label)  
                Dim pl As PlaceHolder = CType(e.Item.FindControl("SliderPlaceHolder"), PlaceHolder)  
                Dim eapl As PlaceHolder = CType(e.Item.FindControl("EAPlaceHolder"), PlaceHolder)  
                Dim objClient As ESMWCF.IESMChannel  
                Dim iWidth As Integer = 0 
                Dim iHeight As Integer = 0 
 
                lbl.Text = FormatHour(HourIndex)  
                PopulateSliderCell(HourIndex, pl, HourIndex, mySQLConnector)  
 
                If iCamCount = 1 Then  
                    'only need width and height if single camera  
                    Dim SerCam() As String = Split(sCameras, ";")  
                    Dim objServer As New Data.cServer(CInt(SerCam(0)), cServer.IDType.idServer)  
                    Try  
                        'objClient = New ESMWCF.ESMClient("WSHttpBinding_IESM", "http://" & objServer.IPAddress & "/ESM.svc")  
                        objClient = ServiceProxy(Of ESMWCF.IESMChannel).getClientProxy("http://" & objServer.IPAddress & "/ESM.svc")  
                        Using ds As DataSet = objClient.GetCameraInfo(CInt(SerCam(1)))  
                            iWidth = CInt(ds.Tables(0).Rows(0)("CameraHorizRes"))  
                            iHeight = CInt(ds.Tables(0).Rows(0)("CameraVertRes"))  
                        End Using  
 
                        PopulateSingleActionCell(eapl, sCameras, HourIndex, HourIndex, iWidth, iHeight)  
                        Dim iSeconds As Integer = 0 
                        iSeconds = objClient.GetEventDurationByHour(iCameraId, HourIndex, SelectedDate, iTimeOffset)  
                        Dim sTotalTime As String = SetTimeFormat(iSeconds)  
                        lblDuration.Text = sTotalTime 
                        lblTotalSize.Text = "0 MB" 
                        Using ds As DataSet = objClient.GetFilteredArchiveInfo(SerCam(1), SelectedDate.Year, SelectedDate.Month, SelectedDate.Day, iTimeOffset, sFilterStr)  
                            'Put the event information in an array because we can't have two open readers on the same database  
                            If ds.Tables(0).Rows.Count > 0 Then  
                                For Each dr In ds.Tables(0).Rows  
                                    If Not dr("EventHour") Is System.DBNull.Value Then  
                                        If CInt(dr("EventHour")) = HourIndex Then  
                                            If Not dr("TotalSize") Is System.DBNull.Value Then  
                                                lblTotalSize.Text = FormatNumber(CDbl(dr("TotalSize")) / 1024000, 2) & " MB"  
                                                Exit For  
                                            End If  
 
                                        End If  
                                    End If  
 
                                Next  
                            End If  
                        End Using  
 
                        objClient.Close()  
                    Catch ex As ServiceModel.CommunicationException  
                        objClient.Abort()  
                    Catch ex As TimeoutException  
                        objClient.Abort()  
                    Catch ex As Exception  
                        objClient.Abort()  
                        Throw ex  
                    End Try  
 
                Else  
                    PopulateActionCell(eapl, sCameras, HourIndex, HourIndex)  
                    'Add a Total Duration cell to the row ====================  
                    lblDuration.Text = "--:--" 
                    lblTotalSize.Text = "0 MB" 
                End If  
 
 
            End If  
        End If  
 
 
        'Dim objClient As ESMWCF.IESMChannel  
        ''  
 
 
    End Sub 

2 Answers, 1 is accepted

Sort by
0
Syed
Top achievements
Rank 1
answered on 25 Nov 2009, 03:55 PM
I am really disappointed that issue after me answered but this one not even after 17 hour.
0
Mira
Telerik team
answered on 27 Nov 2009, 04:15 PM
Hello Syed,

To your question - I recommend that you create the controls for the GridTemplateColumn in the ItemCreated event handler and bind them to data in the ItemDataBound event handler.
For additional information please take a look at the Distinguishing the major differences between ItemCreated and ItemDataBound events help topic.

Regarding the forum threads answering: Please check this article for more information on our support options.

Best wishes,
Mira
the Telerik team

Instantly find answers to your questions on the new Telerik Support Portal.
Watch a video on how to optimize your support resource searches and check out more tips on the blogs.
Tags
Grid
Asked by
Syed
Top achievements
Rank 1
Answers by
Syed
Top achievements
Rank 1
Mira
Telerik team
Share this question
or