Jor*_*dan 1 c# asp.net macros kentico
我最近一直在Kentico网站上工作,最近发生了以下问题,从没想到这行不通。
我在Kentico 8上有一个模板,我想显示存储在当前文档类型的“ ContentText”字段中的内容。
因此,为此,我使用以下代码:
<cms:CMSDocumentValue runat="server" AttributeName="ContentText" FormattingString="{0}" />
Run Code Online (Sandbox Code Playgroud)
这绝对正常。但是,如果我去使用宏,如下所示:
<%# CurrentDocument.GetStringValue("ContentText", String.Empty) %>
Run Code Online (Sandbox Code Playgroud)
它根本不会拉出存储在该字段上的内容。有人知道我要去哪里错吗?我很确定语法是正确的。
我之所以要使用该宏,是因为我可能正在使用它来检查该值是否为null,因此可以更改占位符的可见性。
希望有人可以帮助我。
谢谢。
小智 5
Kentico宏(K#)不会在页面模板标记中自动解析。另外,数据绑定表达式(<%# ... %>)中不允许使用K#。通常,在页面模板中,您可以使用以下代码来解析宏:
<%@ Import Namespace="CMS.MacroEngine" %>
<%= MacroContext.CurrentResolver.ResolveMacros("{% here comes your macro expression %}")%>
Run Code Online (Sandbox Code Playgroud)
如果我正确理解了您的问题,则想根据当前页面字段的值在页面中隐藏一些asp:PlaceHolder控件。此代码可能会帮助您,而不是调用宏:
<%@ Import Namespace="CMS.DocumentEngine" %>
<script runat="server">
protected void Page_Load(object sender, EventArgs e)
{
yourPlaceHolderControl.Visible = !String.IsNullOrEmpty(DocumentContext.CurrentDocument.GetStringValue("Intro", String.Empty));
}
</script>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2875 次 |
| 最近记录: |