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.
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
| <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> |
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 |