[英]Displaying Subnode content on parent node in Umbraco
我一直很難解決這個問題。
我想要的是一個FAQ頁面,該頁面在同一頁面上顯示所有問題和答案。 它從子節點內容的問題和答案中獲取內容。
例如,我的樹看起來像這樣:
我希望FAQList上的模板在同一頁面上列出Question1 ... 2 ...和3中的問題和答案數據。
每次嘗試查找完成的示例時,我都只能找到將子頁面作為鏈接列出的示例。 我不想鏈接到子頁面。 我想將內容從它們實際打印到父頁面上。 那可能嗎?
這是我的嘗試:
<xsl:for-each select="$currentPage/node">
Question: <xsl:value-of select="data [@alias = 'question']"/><br/>
Answer: <xsl:value-of select="data [@alias = 'answer']"/><br/>
</xsl:for-each>
但是我沒有結果。 幫幫我 我為此努力。
這完全取決於您正在運行的Umbraco的版本。 那里有很多文檔都引用了Umbraco的早期版本,因此根本無法在較新的版本上使用。
假設您問題的文檔類型別名為“ FaqItem”,並且假設此XSLT在相應的內容節點上運行(即$currentPage
是您的FAQ父節點),則可以使用以下命令:
如果您使用的是<Umbraco 4.5.1
<xsl:for-each select="$currentPage/child::node[@nodeTypeAlias='FaqItem']">
Question: <xsl:value-of select="./data[@alias='question']"/><br/>
Answer: <xsl:value-of select="./data[@alias='answer']"/><br/>
</xsl:for-each>
如果您使用> = Umbraco 4.5.1
<xsl:for-each select="$currentPage/FaqItem">
Question: <xsl:value-of select="./question"/><br/>
Answer: <xsl:value-of select="./answer"/><br/>
</xsl:for-each>
備查
如果您熟悉XPath,並且想弄清楚Umbraco如何存儲數據,或者幫助調試。 查找名為Umbraco.config
的文件(通常在~/App_Data/
)。 這是所有XSLT將從中讀取的緩存XML。 將相關片段從此文件發布到您的[Stack Overflow]問題中,將會提高響應速度和機會,因為XSLT貢獻者將不僅可以從Umbraco貢獻者那里獲得幫助。
不得不看剃刀? 恕我直言,它更容易讀寫。
@using System.Linq
@using System.Xml.Linq
@using umbraco.MacroEngines
@{
IEnumerable<DynamicNode> FAQs = new DynamicNode(Model.Id).Descendants("FaqItem").Items;
List<DynamicNode> faqList = FAQs.ToList();
@foreach(DynamicNode faq in faqList){
Question: @(faq.GetProperty("question").ToString())
Answer: @(faq.GetProperty("answer").ToString())
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.