如何解决Kentico 11:在文本/xml 转换中使用变量
我正在使用文本/xml 转换处理轮播 webpart。
只需尝试为页面上的每个实例创建一个唯一 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%}" alt="" class="w-100 d-block" />
<div class="carousel-caption d-none d-md-block">
<h3>{%Title%}</h3>
<div>{%Body%}</div>
</div>
</div>
这不输出任何东西?这甚至可以在中继器中使用 IsFirst()
吗?
非常感谢任何帮助!
解决方法
对于转换,您可以使用以下代码:
<div class="carousel-item{% if (DataItemIndex == 0) { " active" } #%}">
<div class="card">
<img src="{%Image%}" alt="" class="card-img-top" />
<div class="card-body">
<h3 class="card-title">{%Title%}</h3>
<div class="card-text">{%Body%}</div>
</div>
</div>
</div>
,
对于 Webpart 容器,我可以使用 HTML/CSS 来解决:
<div class="d-none">
{% uniqueId = string.FormatString("carousel-{0}",InstanceGuid.Substring(0,5)); #%}
</div>
远非理想,所以如果其他人有更好的主意......?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。