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

如何在Tridion中获取当前字段名?,tridion,Tridion,我在Tridion 2011 SP1中向功能区工具栏添加了一个按钮。当我点击按钮时,它将打开一个aspx页面。在该aspx页面内,我需要访问光标当前所在的当前字段名。请提供要使用的对象?对于架构名称,我使用了$display.getView().getItem().getSchemaId()。类似地,是否有任何方法可以获取当前字段名?我得到的最接近的方法是使用此代码(在组件编辑窗口中): 这将返回当前字段的名称,即使方法名称表明它执行其他操作 如果您想从弹出窗口中获得相同的值,请在打开程序中调用

我在Tridion 2011 SP1中向功能区工具栏添加了一个按钮。当我点击按钮时,它将打开一个aspx页面。在该aspx页面内,我需要访问光标当前所在的当前字段名。请提供要使用的对象?对于架构名称,我使用了
$display.getView().getItem().getSchemaId()
。类似地,是否有任何方法可以获取当前字段名?

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

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

如果您想从弹出窗口中获得相同的值,请在
打开程序中调用它,如下所示:

opener.$display.getView().getSourceEditorName()
更好的解决方案 您不应该在弹出窗口中查找字段名,而是应该在调用命令时将其作为参数传递到弹出窗口中。您可以从传递给命令的
\u execute
方法的
target
参数中获取它

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;

你能提供更多的细节吗?我们是否假设这是组件视图的功能区栏?功能区栏有很多位置,因此理解上下文对于回答问题很重要。你能相应地修改你的问题吗?可能值得包含editor.config的一个片段,以便我们可以看到按钮的应用位置。@chrisummers感谢您的回复。是的,我正在将我的按钮添加到组件视图的功能区栏。@chrisummers您能告诉我如何获取子字段的父字段名吗。结构如下所示:Body:name:value:在上述情况下,value字段是RTF。如果单击功能区工具栏按钮,从值字段如何获取父字段名称(即“正文”)?请在此问题上帮助我。提前感谢。以上答案将有助于查找当前字段名。如果是子字段,请告诉我如何获取父字段名。结构如下所示:Body:name:value:在上述情况下,value字段是RTF。如果单击功能区工具栏按钮,从值字段如何获取父字段名称(即“正文”)?请在这个问题上帮助我。提前谢谢。你能告诉我如何获得父字段名吗?提前谢谢你已经试过什么了?我已经做了很多基础工作,让你得到上面的答案。你不能一直依赖别人为你深入研究Tridion的GUI代码。搜索字段之间的关系,记录您的发现,然后提出后续问题。@Puff感谢上述解决方案。我能够将值发送到弹出脚本。但我想在代码隐藏页面中使用该值,我如何使用它?提前感谢。在这种情况下,您只需在打开弹出窗口时将其作为URL的一部分传递给服务器:$popup.create(“/WebUI/Editors/GUI.Extensions/Extension.aspx?fieldName=“+fieldName…”。。。
var fieldName = window.dialogArguments.fieldName;