我在我的某个文档类型上使用多文档选择器字段,因此用户可以选择他们喜欢的许多文档。
现在我想遍历每个文档并应用一些HTML标记,我当前的解决方案将相同的规则应用于所有这些文档,我需要做的是找到已选择的第二个文档在多文档选择器上并应用不同的规则!
有谁知道如何从多文档选择器控件中找到第二个元素或任何单个元素。
希望有人可以帮助我。
谢谢
答案 0 :(得分:0)
多文档选择器不是标准的Kentico控件,所以我不知道该值是如何存储的,但我猜它是类似逗号分隔的NodeAliasPaths列表。 E.g:
/News/News-1, /Products/Phones, /Services
在这种情况下,您可以使用K#macro:
Documents["/Page"].MutipleDocumentField.Split(",")[0]
// Selects the first document in MultipleDocumentField on page with NodeAliasPath == "/Page"
或
CMSContext.CurrentDocument.MutipleDocumentField.Split(",")[1]
// Selects the second document in MultipleDocumentField on the current page
宏也可以使用循环并且有很多built-in methods。请参阅documentation或以下示例:
{% foreach (x in Documents["/Home"].SubmitText.Split(",")) {"<a href=\""+ResolveUrl("~"+x)+"\">"+x+"</a>"} %}
在我的情况下,它会生成以下HTML:
<a href="/8.1/CMS/Partners">/Partners</a>
<a href="/8.1/CMS/News">/News</a>
<a href="/8.1/CMS/Services">/Services</a>
您可以在所有Web部件字段中使用宏。尝试插入代码,例如到静态文本web部分。