sukesh
sukesh

Reputation: 2437

How to render a template in Sitecore, if it does not have a content item

This seems to be a very simple concept, but I am unable to resolve. What I'm trying to do is, render/display a Standard value of a template, to the page.
Created the items & templates using Rocks. Here is the structure.

1. Sublayout - footer.ascx

<div class="content">
    <h1>This is a title.</h1>
    <p>All the content goes here</p>
    <sc:placeholder runat="server" Key="footercontent" />   
</div>

2. Sublayout - StickyNav.ascx

<a class="btn" href="#">
     <sc:Text Field="Sticky Nav Title" runat="server" />            
 </a>

3. Template - Sticky Nav
enter image description here
enter image description here

The first pic is of the template & the second one shows the assigned default value in _Standard Values.
Then, in Sitecore Explorer,
right clicked on (Sticky Nav - _Standard Values) > Tasks > Design Layout on Standard Values.
enter image description here
Now, there is a content item "index" under /sitecore/content/. It has these layouts declared: enter image description here
When I right click on Index > Tools > Browse > Preview, the index page does open and the footer content is also displayed.

But, I am unable to see the text 'Go To Top', that was set as a Standard value (Image 2). It is empty.

What am i missing here.

Upvotes: 0

Views: 1116

Answers (2)

sukesh
sukesh

Reputation: 2437

I realized the initial thought itself was a mistake. There HAS to be an item if it's value has to be displayed on page.

So, I created a new item under /sitecore/content/Sticky Nav Button using the template Sticky Nav.

And in StickyNav.ascx, updated the control as:

<sc:Text Field="Sticky Nav Title" runat="server" DataSource = "/sitecore/content/Sticky Nav Button"/>

Hope this helps beginners like me.

Upvotes: 0

boro2g
boro2g

Reputation: 524

There could be a few factors blocking the content being showed. For the front end the best bet is to rule out things like publishing - i.e. make sure that the template, fields, standard values, and the content items are all published correctly. If you are in preview this is probably of less relevance but worth noting when you deploy

When the sc:Text control renders is will be running the renderField pipeline. At the point that interacts it will be talking to Sitecore via the api.

To check things via the code behind for your control (assuming it's an ascx due to the runat="server" tag). Check:

Field field = Sitecore.Context.Item.Fields["Sticky Nav Title"];

if (field != null)
{
    string value = field.Value;
}

And debug through to check the field actually has the value you require.

In the cms, when you view the page of interest does the 'Sticky Nav Title' field appear to have a value, and be the value you are interested in?

Upvotes: 1

Related Questions