如果它是空的,Kentico 7会隐藏可编辑的文本

时间:2013-12-20 18:37:17

标签: kentico

我在页面模板上有一个可编辑的文本Web部件。它在文本之前和之后都有一个自定义HTML信封。如果可编辑文本为空,如何隐藏整个内容,包括信封?

我需要隐藏它,因为信封添加了没有文本时不应该看到的风格化标记。

可以在Visible属性上使用K#片段吗?我不清楚如何审问文件的财产。

谢谢!

2 个答案:

答案 0 :(得分:3)

尝试将此作为“可见”属性:

{% (ViewMode != "LiveSite") || (CMSContext.CurrentDocument.editabletext != "") #%}

将“editabletext”更改为您的Web部件控件ID。

答案 1 :(得分:0)

我对Kentico不熟悉,但这些解决方案可能有所帮助。他们可能没有具体解决您的问题,但可能有助于解决方案。

CMSEditableImage扩展方法

  

我想出了一种检查方法,我添加了一个扩展方法   获取CurrentPage PageInfo对象的CMSEditableImage类   要检查可编辑区域的值,不知道这是不是   最好的方式与否,但这是代码。

public static bool IsPopulated(this CMSEditableImage editableImage, PageInfo currentPage)
{
    bool isPopulated = false;

    string value = currentPage.EditableItems.EditableRegions[editableImage.ID.ToLower()].ToString();

    if (!string.IsNullOrEmpty(value))
    {
    value = value.ToUpper();
    isPopulated = (value == "<IMAGE><PROPERTY NAME=\"IMAGEPATH\"></PROPERTY></IMAGE>") ? false : true;
    } 

    return isPopulated;
}

通过http://devnet.kentico.com/Forums/f19/fp5/t4454/Empty-CMSEditableImage.aspx

JavaScript方法

  

webcontainer需要一个id,例如:

<h2 id="webpart-header">Headline</h2>
     

然后我有一个小的javascript函数附加在   外部js文件:

/* Hide Webcontainer via javascript if empty*/
function hideLayer(element) {
    elem = document.getElementById( element );
    elem.style.display = "none";
}
     

现在在wep部件配置中,在没有数据行为的情况下,取消选中该复选框并通过输入以下命令调用js函数   找不到记录文本中的脚本:hideLayer(“webpart-header”);

     

其中webpart-header是容器的id名称。你可以   这里也有一个更复杂的<div>结构。

通过http://devnet.kentico.com/Forums/f22/fp3/t4180/Webcontainer-and-hide-if-no-data.aspx