Kentico 7隐藏可编辑文本(如果为';它是空的

Kentico 7隐藏可编辑文本(如果为';它是空的,kentico,Kentico,我在页面模板上有一个可编辑的文本web部件。它在文本前后都有一个自定义HTML信封。如果可编辑文本为空,如何隐藏整个内容(包括信封) 我需要隐藏它,因为信封添加了样式化标记,在没有文本时不应该可见 可以用Visible属性上的一个K#代码片段来完成吗?我不清楚询问文件的属性是如何工作的 谢谢 我不熟悉Kentico,但这些解决方案可能会有所帮助。它们可能不会专门解决您的问题,但可能有助于解决问题 CMSEditableImage扩展方法 我想出了一个方法来检查这一点,我添加了一个扩展方法 接受C

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

我需要隐藏它,因为信封添加了样式化标记,在没有文本时不应该可见

可以用Visible属性上的一个K#代码片段来完成吗?我不清楚询问文件的属性是如何工作的


谢谢

我不熟悉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;
}
现在在wep部件配置中,在无数据行为的情况下,取消选中复选框并通过输入以下命令调用js函数 未找到记录文本中的脚本:hideLayer(“Web部件标题”)

其中,webpart标头是容器的id名称。你可以 这里还有一个更复杂的
结构

通过

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

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

将“
editabletext
”更改为web部件控件ID的所有值。

已安装修复程序以修复此问题。您使用的是什么版本?@JSuar我使用的是Azure gallery模板,它是基于论坛的V7.0.11,看起来您没有修复程序。你还有什么可以更新的吗?@JSuar我已经在7.0.34版中试用过了,但仍然没有达到我的预期效果。我提出的唯一解决方案(无需使用代码)是使用具有相同字段名的多个模板。任何解决方案都没有成功?@tyler此选项作为宏解决方案非常有效!请确保在Web部件配置中未设置任何默认文本。我也将其设置为在预览模式下隐藏
{%(查看模式!=“LiveSite”&&ViewMode!=“preview”)| |(!string.IsNullOrWhiteSpace(CMSContext.CurrentDocument.editabletext))#%}
OP正在寻找关于可编辑文本而不是图像的解决方案。是的,他可以从中获得想法,但老实说,这两种解决方案都不是很好。特别是因为OP专门寻找K#宏解决方案,而不是C#或JavaScript.com。只是想提供一些帮助。如果你认为这对其他可能遇到这个问题的人没有帮助,请投反对票。
/* Hide Webcontainer via javascript if empty*/
function hideLayer(element) {
    elem = document.getElementById( element );
    elem.style.display = "none";
}
{% (ViewMode != "LiveSite") || (CMSContext.CurrentDocument.editabletext != "") #%}