0

私は Sitecore を使用しており、ASP.NET 内で作業するコツをつかんでいます。私たちは開発サーバー用の 2 つ目の Sitecore ライセンスを持っていないので、サイト上ですべてをライブ ファイアーする必要があります (ack!)。 .

次のセクションが空の場合、セクション ヘッダーを非表示にしようとしています。これは間違いなく機能しますが、かなりかさばるようです。

<% 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 を利用せずに構築されたので、将来の開発者がこれを理解できるように、1 つのパラダイムに固執したいと思います.

4

2 に答える 2

3

当たり前のことを言うと、適切な開発プロセスを実施する必要があります。そうしないと、問題が発生します。まだ行っていない場合は、Sitecoreに相談して、適切な開発環境を稼働させるためにライセンスに関して何が必要かを理解してください。認定開発者であれば、開発インスタンスを利用できる場合があります。

さて、あなたの質問に対して、あなたは論理をどこかに置かなければなりません。コードビハインドを変更、コンパイル、デプロイできない場合は、.ascxに配置する必要があります。あなたは私が思うにそれを少しトリミングすることができます...

<% if (Sitecore.Context.Item["Grades"] != "") { %><h2 class="edu">Timeframe</h2><% } %>
<sc:FieldRenderer runat="server" ID="mhTimeFrame" Fieldname="Timeframe" />
于 2012-04-09T20:05:04.243 に答える
0

ifマークアップの-statementを削除するために、<h2 />要素の表示属性を設定できます。

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

これを起動して実行するには、DataBindingを少なくとも1回トリガーする必要があります。

protected void Page_Load(object sender, EventArgs e)
{
  Page.DataBind();
}

それにもかかわらず、開発環境が必要です;)

于 2012-04-09T20:25:35.290 に答える