2016-05-04 13 views
0

我在我的对话框中有一个由LinkField和TextField组成的CompositeField。 在选择LinkField的数据时,我想用与LinkField值相关的值填充TextField。 任何想法如何做到这一点?在Magnolia LinkField的变化中填充TextField的数据

这是用于Magnolia CMS。我正在使用最新的Magnolia版本。

谢谢! :)

回答

2

不同领域之间没有ootb绑定。

要创建它,你要么需要编写自己的字段,将在内部封装领域的链接和文本字段和链接字段值的变化和在文本字段改变寄存器设定值监听器。
或者您需要重写对话提示器,以便能够在创建链接字段时将此监听器注册。

对不起,目前没有任何代码示例来演示它。希望解释清楚。

HTH,

+0

谢谢Jan! :)其实我一直在考虑这两个选项。但现在我会先听取听众的意见,看看它是如何工作的。 –

0

您是否需要根据编辑器更新文本字段?

如果不是,可以通过修改保存操作轻松实现。你的表单应该有一个类别= info.magnolia.ui.admincentral.dialog.action.SaveDialogActionDefinition的定义按钮

打开SaveDialogActionDefinition,你会看到它指向info.magnolia.ui.admincentral.dialog.action.SaveDialogAction,它在执行时可以在保存会话之前操作节点。

如果扩展SaveDialogAction,加入类似setNodeName(Node node, JcrNodeAdapter item)另一种方法,并把它称为setNodeName(...)node.getSession().save()之间,你可以设置你基于这些用户输入想要的任何附加属性。

您还需要引用新动作的另一个定义类,以便对话框定义知道在提交时使用新动作。

+0

是的,我需要在视图编辑器来更新文本字段。在从链接字段中选择数据时,会为链接字段的所选值指定与文本字段相关的默认值。用户可以进一步编辑该值。 –