C# 在Sitecore/ASP.NET中隐藏标题的更好方法

C# 在Sitecore/ASP.NET中隐藏标题的更好方法,c#,asp.net,sitecore,C#,Asp.net,Sitecore,我正在使用Sitecore,刚刚掌握了在ASP.NET中工作的诀窍。我们没有针对开发服务器的第二个Sitecore许可证,因此我必须在站点上执行所有实时操作(ack!),因此我试图避免由于需要重新编译/DLL插入而使用落后的代码 如果下面的部分为空,我只是想隐藏一个部分标题。我想到了这个,它确实有效,但它看起来相当笨重: <% if (!string.IsNullOrEmpty(Sitecore.Context.Item.Fields["Grades"].ToString())) { %&

我正在使用Sitecore,刚刚掌握了在ASP.NET中工作的诀窍。我们没有针对开发服务器的第二个Sitecore许可证,因此我必须在站点上执行所有实时操作(ack!),因此我试图避免由于需要重新编译/DLL插入而使用落后的代码

如果下面的部分为空,我只是想隐藏一个部分标题。我想到了这个,它确实有效,但它看起来相当笨重:

<% if (!string.IsNullOrEmpty(Sitecore.Context.Item.Fields["Grades"].ToString())) { %><h2 class="edu">Timeframe</h2><% } %>
    <sc:FieldRenderer runat="server" ID="mhTimeFrame" Fieldname="Timeframe" />
时间框架
有没有更直接的方法


顺便说一句:我知道Sitecore可以使用XSLT模板,但我们的网站是在不使用XSLT的情况下构建的,所以我想坚持一种范式,以便未来的开发人员能够理解这一点。

简单地说,你需要有一个适当的开发过程,否则你会陷入麻烦!如果您还没有,请咨询Sitecore,了解您需要什么样的许可证才能建立并运行适当的开发环境。如果您是经认证的开发人员,您可能有权使用开发实例

现在,对于你的问题,你必须把逻辑放在某个地方。如果无法修改代码隐藏、编译和部署,则需要将其放在.ascx上。我想你可以把它修剪一下

<% if (Sitecore.Context.Item["Grades"] != "") { %><h2 class="edu">Timeframe</h2><% } %>
<sc:FieldRenderer runat="server" ID="mhTimeFrame" Fieldname="Timeframe" />
时间框架

简单地说,你需要有一个适当的开发过程,否则你会陷入麻烦!如果您还没有,请咨询Sitecore,了解您需要什么样的许可证才能建立并运行适当的开发环境。如果您是经认证的开发人员,您可能有权使用开发实例

现在,对于你的问题,你必须把逻辑放在某个地方。如果无法修改代码隐藏、编译和部署,则需要将其放在.ascx上。我想你可以把它修剪一下

<% if (Sitecore.Context.Item["Grades"] != "") { %><h2 class="edu">Timeframe</h2><% } %>
<sc:FieldRenderer runat="server" ID="mhTimeFrame" Fieldname="Timeframe" />
时间框架

为了去掉标记中的
if
-语句,可以设置
元素的visible属性:

<h2 class="edu" runat="server" Visible='<%# Sitecore.Context.Item.Fields["Grades"] != null %>'>
  Timeframe
</h2>

然而,您需要一个开发环境;)

为了摆脱标记中的
if
-语句,可以设置
元素的visible属性:

<h2 class="edu" runat="server" Visible='<%# Sitecore.Context.Item.Fields["Grades"] != null %>'>
  Timeframe
</h2>

然而,您需要一个开发环境;)

我也更喜欢这种方法,但正如您指出的,它需要调用
DataBind()
。虽然您可以从“前端”部分执行此操作,但我们不知道它是否已经在代码隐藏中被调用。我也更喜欢这种方法,但正如您指出的,它需要调用
DataBind()
。虽然您可以从“前端”部分执行此操作,但我们不知道它是否已经在代码隐藏中被调用。