如何在Tridion中获取当前字段名称?

时间:2012-04-18 12:11:38

标签: tridion

我在Tridion 2011 SP1的功能区工具栏中添加了一个按钮。当我点击按钮时,它将打开一个aspx页面。在aspx页面旁边,我需要访问当前光标所在的当前字段名称。请告诉我使用哪个对象?对于模式名称,我使用了$display.getView().getItem().getSchemaId()。同样有什么方法可以获得当前字段名称吗?

1 个答案:

答案 0 :(得分:6)

我最接近的是使用此代码(在组件编辑窗口中):

$display.getView().getSourceEditorName()

这将返回当前字段的名称,即使方法名称表明它会执行其他操作。

如果您想从弹出式窗口中获取相同的值,请在opener上调用它,如下所示:

opener.$display.getView().getSourceEditorName()

更好的解决方案

不是在弹出窗口中查找字段名称,而是在调用命令时将其作为参数传递给弹出窗口。您可以从传递给Command的target方法的_execute参数中获取它。

GUI.Extension.prototype._execute = function GUI$Extension$_execute(target) {
    target.editor.setFocus();
    var fieldName = target.item.getSourceEditorName();
    var popup = $popup.create("/WebUI/Editors/GUI.Extensions/Extension.aspx",
                "width=400px,height=150px,resizable=0",
                { fieldName: fieldName });
}

然后使用以下命令在弹出窗口的JavaScript中阅读:

var fieldName = window.dialogArguments.fieldName;