2011-02-16 63 views
1

我完全是Umbraco和.net的新手。 我有一个母版页和几个字段 - 现在我只想显示一个母版页的一部分,只有当一个特定的字段不是空的。umbraco - masterpage:“if field is not empty then show field”

伪代码:

if(myField != NULL) then 
<div class="something"> 
<umbraco:Item field="myField" runat="server"></umbraco:Item > 
</div> 
endif; 

安迪想法是如何工作的?

提前致谢!

回答

2

感谢有用的umbraco irc频道,我找到了解决方案。 答案是创建一个xslt文件+宏(它是自动生成的)。

XSLT内容:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp "&#x00A0;"> ]> 
<xsl:stylesheet 
    version="1.0" 
    xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
    xmlns:msxml="urn:schemas-microsoft-com:xslt" 
    xmlns:umbraco.library="urn:umbraco.library" xmlns:Exslt.ExsltCommon="urn:Exslt.ExsltCommon" xmlns:Exslt.ExsltDatesAndTimes="urn:Exslt.ExsltDatesAndTimes" xmlns:Exslt.ExsltMath="urn:Exslt.ExsltMath" xmlns:Exslt.ExsltRegularExpressions="urn:Exslt.ExsltRegularExpressions" xmlns:Exslt.ExsltStrings="urn:Exslt.ExsltStrings" xmlns:Exslt.ExsltSets="urn:Exslt.ExsltSets" 
    exclude-result-prefixes="msxml umbraco.library Exslt.ExsltCommon Exslt.ExsltDatesAndTimes Exslt.ExsltMath Exslt.ExsltRegularExpressions Exslt.ExsltStrings Exslt.ExsltSets "> 


<xsl:output method="xml" omit-xml-declaration="yes"/> 

<xsl:param name="currentPage"/> 

<xsl:template match="/"> 

<xsl:variable name="myField" select="$currentPage/myField" /> 

<xsl:if test="$myField!= ''"> 
     <xsl:value-of select="$myField" /> 
</xsl:if> 


</xsl:template> 

</xsl:stylesheet> 

母版内容:

<body> 
.... 
<umbraco:Macro Alias="MyField" runat="server"></umbraco:Macro> 
.... 
</body>