DevReach site: Modify the Detailed view of the Sessions template

NEW TO SITEFINITY?

The Detailed view widget template is used to display a single session in detail. You reach the Detailed view after you click a session the List view.

Open the Sessions Detailed view widget template for editing and paste the following code:

<%@ Control Language="C#" %>
<%@ Register Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.DynamicModules.Web.UI.Frontend" TagPrefix="sf" %>
<%@ Register Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.Web.UI.Fields" TagPrefix="sf" %>
<%@ Register Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.Web.UI" TagPrefix="sf" %>
<%@ Register Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.Web.UI.ContentUI" TagPrefix="sf" %>
<%@ Import Namespace="Telerik.Sitefinity.Web.UI" %>
<%@ Import Namespace="Telerik.Sitefinity.Modules.Comments" %>
<%@ Import Namespace="Telerik.Sitefinity.Taxonomies" %>
<%@ Import Namespace="Telerik.Sitefinity.RelatedData" %>
<sf:SitefinityLabel ID="title" runat="server" WrapperTagName="div" HideIfNoText="true" HideIfNoTextMode="Server" CssClass="sfitemFieldLbl" />
<sf:DynamicDetailContainer ID="detailContainer" runat="server">
<LayoutTemplate>
<div class="sfitemDetails sfdetails" data-sf-provider='<%# Eval("Provider.Name")%>' data-sf-id='<%# Eval("Id")%>' data-sf-type="Telerik.Sitefinity.DynamicModules.Model.DynamicContent">
<div class="article-title">
<sf:SitefinityLabel ID="mainShortTextFieldLiteral" runat="server" Text='<%# Eval("Title") %>' WrapperTagName="h1" HideIfNoText="true" CssClass="sfitemTitle sftitle" data-sf-field="Title" data-sf-ftype="ShortText" />
<%--The following namespace should be registered at the top of the control if it doesn't exists--%>
<asp:Repeater runat="server" ID="speakers" DataSource='<%# Eval("Speakers")%>'>
<ItemTemplate>
<a href="<%# RelatedDataExtensions.GetDefaultUrl(Container.DataItem) %>"><%# Eval("Title") %></a></br>
</ItemTemplate>
</asp:Repeater>
</div>
<div class="sf_cols article-details">
<div class="sf_colsOut sf_2cols_1_75">
<%# Eval("Description") %>
</div>
<div class="sf_colsOut sf_2cols_1_25">
<div class="session-details">
<h4>When</h4>
<%# Eval("Day.Title") %>
<br />
<%# Eval("StartTime","{0:MMM dd, yyyy}") %><br />
<%# Eval("StartTime","{0:HH:mm}") %> – <%# Eval("EndTime","{0:HH:mm}") %>
<h4 class="session-location">Location</h4>
<%# Eval("Location.Title") %>
<div class="number-attended"><span><%# Container.DataItem.GetRelatedItemsCountByField("Attendees") %></span> Аttendees</div>
</div>
</div>
</div>
</div>
<h2 class="sub-title">Related sessions</h2>
<table class="list-sessions">
<asp:Repeater ID="RelatedDataRepeater" runat="server" DataSource='<%# Container.DataItem.GetItemsWithSameTaxons("Tags", "Telerik.Sitefinity.DynamicTypes.Model.DevReach.Session", 0, 5) %>'>
<ItemTemplate>
<tr>
<td>
<h3><a href="<%# RelatedDataExtensions.GetDefaultUrl(Container.DataItem)%>"><%# Eval("Title") %></a></h3>
</td>
<td><%# Eval("Day.Title") %></td>
<td><%# Eval("StartTime","{0:HH:mm}") %> - <%# Eval("EndTime","{0:HH:mm}") %></td>
<td><%# Eval("Location.Title") %></td>
</tr>
</ItemTemplate>
</asp:Repeater>
</table>
<h2 class="sub-title">Session perspectives</h2>
<%--The following namespace should be registered at the top of the control if it doesn't exists--%>
<%@ Register Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.Modules.Libraries.Web.UI.Documents" TagPrefix="sf" %>
<%@ Register Assembly="Telerik.Sitefinity" Namespace="Telerik.Sitefinity.Modules.Libraries.Web.UI" TagPrefix="sf" %>
<sf:DownloadListView ControlDefinitionName="FrontendDocuments" runat="server" Title="Docs" UrlKeyPrefix="">
<RelatedDataDefinition RelatedFieldName="Docs" RelatedItemType="Telerik.Sitefinity.DynamicTypes.Model.DevReach.Session" RelationTypeToDisplay="Child" RelatedItemSource="DataItemContainer"></RelatedDataDefinition>
<ControlDefinition ControlDefinitionName="FrontendDocuments" runat="server">
<Views>
<sf:DownloadListViewMasterDefinition ViewName="MasterListView" runat="server">
</sf:DownloadListViewMasterDefinition>
<sf:DownloadListViewMasterDefinition ViewName="MasterTableView" runat="server">
</sf:DownloadListViewMasterDefinition>
<sf:DownloadListViewDetailDefinition ViewName="DetailsListView" runat="server">
</sf:DownloadListViewDetailDefinition>
<sf:DownloadListViewMasterDefinition ViewName="MasterListDetailView" runat="server">
</sf:DownloadListViewMasterDefinition>
<sf:DownloadListViewMasterDefinition ViewName="MasterTableDetailView" runat="server">
</sf:DownloadListViewMasterDefinition>
</Views>
</ControlDefinition>
</sf:DownloadListView>
</LayoutTemplate>
</sf:DynamicDetailContainer>
<asp:PlaceHolder ID="socialOptionsContainer" runat="server"></asp:PlaceHolder>
NOTE:
  • DataSource='<%# Eval("Speakers")%>' – sets all related speakers as a data source of the repeater.
  • <%# RelatedDataExtensions.GetDefaultUrl(Container.DataItem) %> - returns the default location of the item in the frontend – its canonical URL.
  • <%# Container.DataItem.GetItemsWithSameTaxons("Tags", "Telerik.Sitefinity.DynamicTypes.Model.DevReach.Session", 0, 5) %> – returns the first 5 sessions having the same tag as the current session.
  • <%# Container.DataItem.GetRelatedItemsCountByField("Attendees") %> - gets the count of the related items by the related data field name. The Attendees relation is also used to show the count of the attendees of a current session.

In order to use the above mentioned extension methods, you must add the following import: <%@ Import Namespace="Telerik.Sitefinity.RelatedData" %>

The following screenshot displays the final looks of the Session widget in detailed view:

Want to learn more?

Increase your Sitefinity skills by signing up for our free trainings. Get Sitefinity-certified at Progress Education Community to boost your credentials.

Get started with Integration Hub | Sitefinity Cloud | Sitefinity SaaS

This free lesson teaches administrators, marketers, and other business professionals how to use the Integration hub service to create automated workflows between Sitefinity and other business systems.

Web Security for Sitefinity Administrators

This free lesson teaches administrators the basics about protecting yor Sitefinity instance and its sites from external threats. Configure HTTPS, SSL, allow lists for trusted sites, and cookie security, among others.

Foundations of Sitefinity ASP.NET Core Development

The free on-demand video course teaches developers how to use Sitefinity .NET Core and leverage its decoupled architecture and new way of coding against the platform.

Was this article helpful?