代码之家  ›  专栏  ›  技术社区  ›  Jen

Kentico 10基于另一个Web部件控制Web部件的可见性

  •  0
  • Jen  · 技术社区  · 8 年前

    我想根据活动站点的另一个web部件的文本设置此web部件的可见性。

    我试过这个:

     {#!string.IsNullOrEmpty(WebPart.GetValue("AreaDescription", "Content")) && 
    CMS.PortalEngine.ViewModeEnum.LiveSite == CMS.PortalEngine.PortalContext.ViewMode  #}
    

    CMSAbstractWebPart webpart = PagePlaceholder.FindWebPart("webPartId");
    
    3 回复  |  直到 8 年前
        1
  •  1
  •   Mariia Zhokh    8 年前

    试试{%(ViewMode==“LiveSite”)&(CMSContext.CurrentDocument.WebPartID!=“”)#%}

        2
  •  1
  •   Peter Mogilnitski    8 年前

    在宏中获取可编辑文本的内容:

    {%CurrentDocument.DocumentContent["webPartId"]#%}
    

    {%!string.IsNullOrEmpty(CurrentDocument.DocumentContent["AreaDescription"]) && (PortalContext.ViewMode == "LiveSite")#%}
    
        3
  •  0
  •   Jen    8 年前

    当我试图避免自定义web部件时,他们建议我可以为我的web部件创建一个与default plus add相同的替代布局:

    如果是自定义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"), "");
    

    可能是在预渲染上,以确保它不会被覆盖。

    在这个阶段,我只想删除默认文本,因为这感觉就像我在与系统作斗争,获得的价值可能不值得付出努力/定制。