【问题标题】:Kentico 7 hide editable text if it's empty如果为空,Kentico 7 隐藏可编辑文本
【发布时间】:2014-01-09 16:34:05
【问题描述】:

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

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

可以在 Visible 属性上使用 K# sn-p 来完成吗?我不清楚如何查询文件的属性。

谢谢!

【问题讨论】:

  • Reported here 已实施修复以解决此问题。你用的是什么版本?
  • @JSuar 我使用的是 v 7.0.11 的 Azure 图库模板
  • 根据论坛,您似乎没有修复程序。有什么可以更新的吗?
  • @JSuar 我现在已经在 7.0.34 版本中尝试过了,但它仍然没有像我预期的那样工作。我想出的唯一解决方案(不借助代码)是使用具有相同字段名称的多个模板。
  • 对任何解决方案都不满意?

标签: kentico


【解决方案1】:

试试这个作为“可见”属性:

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

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

【讨论】:

  • @tyler 这个选项非常适合作为宏解决方案!确保您没有在 webpart 配置中设置任何默认文本。
  • 我也设置为隐藏在预览模式{% (ViewMode != "LiveSite" && ViewMode != "Preview") || (!string.IsNullOrWhiteSpace(CMSContext.CurrentDocument.editabletext)) #%}
【解决方案2】:

我不熟悉 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 名称。你可以 这里还有一个更复杂的&lt;div&gt; 结构。

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

【讨论】:

  • OP 正在寻找关于可编辑文本而非图像的解决方案。是的,他可以从中获得想法,但老实说,这些解决方案都不是很好。特别是因为 OP 专门寻找 K# 宏解决方案,而不是 C# 或 JavaScript。
  • 明白。只是想提供一些帮助。如果您认为对可能遇到此问题的其他人没有帮助,请投反对票。
猜你喜欢
  • 2021-07-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-03
  • 2019-06-08
  • 2014-03-19
相关资源
最近更新 更多