在 Magnolia 中更改 LinkField 时填充 TextField 的数据
Populate Data for TextField on change of LinkField in Magnolia
我的对话框中有一个由 LinkField 和 TextField 组成的 CompositeField。
在 LinkField 的 select 数据中,我还想用与 LinkField 值相关的值填充 TextField。
知道怎么做吗?
这是针对 Magnolia CMS 的。我正在使用最新的 Magnolia 版本。
谢谢! :)
是否需要根据编辑器更新文本字段?
如果没有,可以通过修改保存动作轻松实现。您的表单应该有一个用 class=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()
之间调用它,您可以设置任何额外的 属性你想要的是根据用户输入的。
您还需要另一个定义 class 来引用您的新操作,以便您的对话定义知道在提交时使用新操作。
不同字段之间没有ootb绑定。
要创建它,您需要编写自己的字段,在内部封装 link 字段和文本字段,并为 link 字段值更改注册侦听器,并在更改后设置值文本字段。
或者您需要重写对话框演示器才能在创建时在 link 字段上注册此类侦听器。
抱歉,目前没有任何代码示例来演示它。希望解释清楚。
HTH,
一月
我的对话框中有一个由 LinkField 和 TextField 组成的 CompositeField。 在 LinkField 的 select 数据中,我还想用与 LinkField 值相关的值填充 TextField。 知道怎么做吗?
这是针对 Magnolia CMS 的。我正在使用最新的 Magnolia 版本。
谢谢! :)
是否需要根据编辑器更新文本字段?
如果没有,可以通过修改保存动作轻松实现。您的表单应该有一个用 class=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()
之间调用它,您可以设置任何额外的 属性你想要的是根据用户输入的。
您还需要另一个定义 class 来引用您的新操作,以便您的对话定义知道在提交时使用新操作。
不同字段之间没有ootb绑定。
要创建它,您需要编写自己的字段,在内部封装 link 字段和文本字段,并为 link 字段值更改注册侦听器,并在更改后设置值文本字段。
或者您需要重写对话框演示器才能在创建时在 link 字段上注册此类侦听器。
抱歉,目前没有任何代码示例来演示它。希望解释清楚。
HTH,
一月