Kentico 10基于另一个Web部件控制Web部件的可见性
我在一个页面上有两个可编辑文本web部件。一个web部件上设置了默认文本,因为大多数情况下它都是相同的文本 我想根据实时站点的另一个web部件的文本设置此web部件的可见性 我试过这个:Kentico 10基于另一个Web部件控制Web部件的可见性,kentico,Kentico,我在一个页面上有两个可编辑文本web部件。一个web部件上设置了默认文本,因为大多数情况下它都是相同的文本 我想根据实时站点的另一个web部件的文本设置此web部件的可见性 我试过这个: {#!string.IsNullOrEmpty(WebPart.GetValue("AreaDescription", "Content")) && CMS.PortalEngine.ViewModeEnum.LiveSite == CMS.PortalEngine.PortalContex
{#!string.IsNullOrEmpty(WebPart.GetValue("AreaDescription", "Content")) &&
CMS.PortalEngine.ViewModeEnum.LiveSite == CMS.PortalEngine.PortalContext.ViewMode #}
但是它永远不可见,因此它无法成功地拾取其他Web部件中的文本。所以我想也许我需要调用GetContent()来获取用户提供的可编辑区域的文本。我尝试编写一个自定义转换方法,但是使用下面的PagePlaceholder是未知的,我不确定如何获得对它的引用
CMSAbstractWebPart webpart = PagePlaceholder.FindWebPart("webPartId");
在宏中尝试{%(ViewMode==“LiveSite”)&&(CMSContext.CurrentDocument.WebPartID!=“”)\%}尝试{%(ViewMode==“LiveSite”)&&&(CMSContext.CurrentDocument.WebPartID!=“”)\%}获取可编辑文本的内容:
{%CurrentDocument.DocumentContent["webPartId"]#%}
所以你要找的是这样的东西:
{%!string.IsNullOrEmpty(CurrentDocument.DocumentContent["AreaDescription"]) && (PortalContext.ViewMode == "LiveSite")#%}
在宏中获取可编辑文本的内容:
{%CurrentDocument.DocumentContent["webPartId"]#%}
所以你要找的是这样的东西:
{%!string.IsNullOrEmpty(CurrentDocument.DocumentContent["AreaDescription"]) && (PortalContext.ViewMode == "LiveSite")#%}
来自Kentico support-宏将不允许我执行我想要实现的操作,因为其他web部件的内容在CMSContext或DocumentContent中不可用 当我试图避免自定义web部件时,他们建议我可以为我的web部件创建一个与default plus add相同的替代布局: 您的onLoad或任何更好的事件处理程序 如果是自定义web部件,我可以添加:
///find another web part - in this case WebPart1
CMSAbstractWebPart webpart1 = PagePlaceholder.FindWebPart("WebPart1");
///store value/content of chosen property
string wp1DefaultText = ValidationHelper.GetString(webpart1.GetValue("DefaultText"), "");
可能在Prerender上,以确保它不会被覆盖
在这一阶段,我只想删除默认文本,因为这感觉像是我在与系统作战,获得的价值可能不值得努力/定制。来自Kentico support-宏将不允许我做我想做的事情,因为其他web部件的内容在CMSContext或DocumentContent中不可用 当我试图避免自定义web部件时,他们建议我可以为我的web部件创建一个与default plus add相同的替代布局: 您的onLoad或任何更好的事件处理程序 如果是自定义web部件,我可以添加:
///find another web part - in this case WebPart1
CMSAbstractWebPart webpart1 = PagePlaceholder.FindWebPart("WebPart1");
///store value/content of chosen property
string wp1DefaultText = ValidationHelper.GetString(webpart1.GetValue("DefaultText"), "");
可能在Prerender上,以确保它不会被覆盖
在这一阶段,我只想删除默认文本,因为它让我感觉像是在与系统作斗争,所获得的价值可能不值得努力/定制。谢谢!不幸的是,标题没有显示。这就好像AreaDescription被解释为空。即使我已经在页面视图中输入了文本到可编辑文本区域。谢谢!不幸的是,标题没有显示。这就好像AreaDescription被解释为空。即使我已经在页面视图中输入了文本到可编辑文本区域。谢谢!不幸的是,标题没有显示。这就好像AreaDescription被解释为空。即使我已经在页面视图中输入了文本到可编辑文本区域。谢谢!不幸的是,标题没有显示。这就好像AreaDescription被解释为空。即使我已将页面视图中的文本输入到可编辑文本区域。