簡體   English   中英

在Umbraco的父節點上顯示子節點內容

[英]Displaying Subnode content on parent node in Umbraco

我一直很難解決這個問題。

我想要的是一個FAQ頁面,該頁面在同一頁面上顯示所有問題和答案。 它從子節點內容的問題和答案中獲取內容。

例如,我的樹看起來像這樣:

  • 常問問題
    • 問題1
    • 問題2
    • 問題3

我希望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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM