如果field为null,则在sitecore中显示none

时间:2014-10-30 19:49:11

标签: javascript c# sitecore

这是在Sitecore 7.2和C#中。

我在1 div中使用3个字段,我无法弄清楚如何在输入字段时显示每个字段。所以我的田地是牛排,培根和鸡蛋。所有这些都是富文本编辑器。所以,假设在加载页面时加载了牛排。当用户将文本输入培根或鸡蛋时,我该怎么做,以便将牛排变为display:none;并显示用户输入的字段?我不确定这是javascript还是后端C#。

假设我有一个模板与Sitecore中创建的控件一起使用所需的字段,当有人进入该字段并发布时,它将以HTML格式显示。

 <div class="container">
        <div class="steak" id="steak"><sc:FieldRenderer FieldName="Steak" runat="server"  /></div>
        <div class="bacon" id="bacon"><sc:FieldRenderer FieldName="Bacon" runat="server"  /></div>
        <div class="eggs id="eggs"><sc:FieldRenderer FieldName="Eggs" runat="server"  /></div>
 </div>

2 个答案:

答案 0 :(得分:2)

如果您不需要class和id属性(将其设置为.container div),则可以使用fieldrenderer的封闭标记属性:

<div class="container">
  <sc:FieldRenderer FieldName="Steak" EnclosingTag="div" runat="server" />
  <sc:FieldRenderer FieldName="Bacon" EnclosingTag="div" runat="server" />
  <sc:FieldRenderer FieldName="Eggs" EnclosingTag="div" runat="server" />
</div>

如果填充了该字段,则文本将使用div标签包装,否则不会呈现任何内容。

答案 1 :(得分:1)

您可以使用围绕每个<asp:PlaceHolder/>的{​​{1}}控件来实现此目的:

<div>

我已在此处显示设置ascx标记的可见性,但如果您愿意,可以通过代码隐藏轻松完成。此外,理想情况下还应检查页面编辑模式,以确保在页面编辑器模式下始终显示占位符(这涉及检查属性<asp:PlaceHolder Visible='<%#!string.IsNullOrWhiteSpace(Sitecore.Context.Item["Steak"])%>' runat="server"> <div class="steak"> <sc:FieldRenderer FieldName="Steak" runat="server"></sc:FieldRenderer> </div> </asp:PlaceHolder> )。