Kentico 11:在 text/xml 转换中使用变量

Posted

技术标签:

【中文标题】Kentico 11:在 text/xml 转换中使用变量【英文标题】:Kentico 11: using variables inside text/xml transformations 【发布时间】:2021-05-06 13:59:59 【问题描述】:

我正在使用带有文本/xml 转换的轮播 Web 部件。 只需尝试为页面上的每个实例创建一个唯一 ID。 接下来,我想使用 CSS 类将第一个项目设置为活动状态。


对于Webpart 容器部分:

% uniqueId = string.FormatString("carousel-0", InstanceGuid.Substring(0,5)); #%
<div id="%uniqueId%" class="carousel slide" data-ride="carousel">
    <div class="carousel-inner">
    □
    </div>
    <a class="carousel-control-prev" href="#%uniqueId%" role="button" data-slide="prev">
        <span class="carousel-control-prev-icon" aria-hidden="true"></span>
        <span class="sr-only">Previous</span>
    </a>
    <a class="carousel-control-next" href="#%uniqueId%" role="button" data-slide="next">
        <span class="carousel-control-next-icon" aria-hidden="true"></span>
        <span class="sr-only">Next</span>
    </a>
</div>

起初这似乎可行,但由于某种原因,它会在 html 中生成一个文本节点。 如何在不生成变量输出的情况下做到这一点?


对于转换部分中的单个轮播项目:

% CssActive = IsFirst() ? "active" : string.Empty %
<div class="carousel-item %CssActive%">
    <img src="%Image%"  class="w-100 d-block" />
    <div class="carousel-caption d-none d-md-block">
        <h3>%Title%</h3>
        <div>%Body%</div>
    </div>
</div>

这不输出任何东西?这甚至可以在转发器中使用IsFirst() 吗?

非常感谢任何帮助!

【问题讨论】:

【参考方案1】:

对于 Webpart 容器,我可以使用 HTML/CSS 解决方法:

<div class="d-none">
% uniqueId = string.FormatString("carousel-0", InstanceGuid.Substring(0,5)); #%
</div>

远非理想,所以如果其他人有更好的想法......?

【讨论】:

【参考方案2】:

对于转换,您可以使用以下代码:

<div class="carousel-item% if (DataItemIndex == 0)  " active"  #%">
  <div class="card">
    <img src="%Image%"  class="card-img-top" />
    <div class="card-body">
      <h3 class="card-title">%Title%</h3>
      <div class="card-text">%Body%</div>
    </div>
  </div>
</div>

Doc

【讨论】:

以上是关于Kentico 11:在 text/xml 转换中使用变量的主要内容,如果未能解决你的问题,请参考以下文章

搜索结果转换中的多个索引不适用于Kentico

从 Kentico 10 中的自定义表重复器中过滤重复的列值

Kentico 12 - 如何将单个页面设置为需要身份验证?

Kentico 11 Validation Online-Form无法使用Custom Widget

无法在Kentico站点上实现语言辅助功能修复

创建UI以管理Kentico中自定义模块中的多个类之间的关系