【问题标题】:Remove all items in multivalue field from Custom URL page从自定义 URL 页面中删除多值字段中的所有项目
【发布时间】:2013-01-20 17:19:05
【问题描述】:

我有一个自定义 URL,它从多值文本字段加载所有字段以进行修改。

单击保存按钮时,它应该更新所有字段,但目前它所做的只是添加其他参数而不是更新现有参数,我将如何删除所有准备重新填充的现有值。

我的保存功能是这样的

function SaveAndClose()
{
    var returnValues = new Array();

    var selectobject=document.getElementById("FeedItem")
    for (var i=0; i<selectobject.length; i++)
    {
        if (selectobject.options[i].value != '')
        {
            returnValues.push(selectobject.options[i].text);
        }
    }
    window.returnValue = returnValues;
    self.close();
}

【问题讨论】:

    标签: tridion tridion2009 custom-url


    【解决方案1】:

    这可以通过 SDL Tridion 2011 中引入的新 API 实现,但我认为您在 2009 年无法做到。

    来自 SDL Tridion 2009 SP1 内容管理实施手册

    (第 9.15.3 节,使用自定义 URL 填写字段值)

    多值字段——应该使用一个数组作为返回值。每个条目 在数组中表示要在字段中插入的值。

    【讨论】:

      【解决方案2】:

      IIRC :) 多值字段的自定义 URL 弹出窗口的返回值是一个字符串数组。

      因此,只需返回一个空数组,这实际上应该删除该字段的所有值。

      编辑:

      我不久前采取的方法是弄乱 Tridion 组件窗口的 DOM 结构。因此,在我的弹出代码中,我将处理“父”窗口并使用 JavaScript(jQuery 会做得很好)识别您想要的字段并删除其所有“多值”子节点。然后简单地在你的 JS window.returnValue 中返回数组,它应该用你想要的值填充它。

      很遗憾,我找不到几年前写的代码……所以你只能靠自己了……

      【讨论】:

      • 我很确定在 5.3 中我有一个像这样工作的自定义页面。 2009 年可能发生了变化……
      • 如果您返回一个字符串数组,它所做的只是将其附加到组件中已有的内容,而不是更新任何...我需要更改现有值,而不是添加更多 :)
      • 好的,我将不得不挖掘一些代码。我知道我在过去的一段时间里得到了这个工作...... :)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-22
      相关资源
      最近更新 更多