在 ZK 中,在我的 GenericForwardComposer 类中,如何捕获所有 onClick 和 onChange 事件?
我知道如果我定义一个具有匹配 id 的 onClick$id 方法,我可以捕获特定的按钮或文本字段。我想要一个通用的 onClick-something 和 onChange-something 方法,当单击任何按钮或更新任何文本字段时都会调用该方法。 ZK框架可以实现吗?
I know that I can capture a specific button or text field if I define an onClick$id method with a matching id. I'd like to have a generic onClick-something and onChange-something method that gets called when any button is clicked or any text field is updated. Is that possible with the ZK framework?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以通过两种方式执行此操作。
1) 在控制器上定义单个事件处理程序,并将所有其他组件事件转发到该事件处理程序。例如。考虑这个具有 3 个按钮组件的示例 ZUML 文件
现在,在应用于包含这 3 个按钮组件的 Window 组件的控制器中,您可以定义一个 onClick 事件处理程序,如下所示
现在,对于每个按钮,您可以使用前向属性并将目标组件定义为以及以以下格式处理的事件:forward="event-name=target-component.target-event"。有关更多详细信息,请参阅此处的前向属性参考。
2) 在 ZK 6 中,有一种更优雅的方法可以使用 SelectorComposer 和注释来定义事件处理程序来实现此目的。例如,
请参阅此smalltalk了解有关SelectorComposer的更多详细信息
You can do this in two ways.
1) Define a single event handler on the controller and forward all other component events to that event handler. For eg. consider this sample ZUML file that has 3 Button components
Now in the controller applied to the Window component containing these 3 Button components you cab define a single onClick event handler as below
Now for each Button you can use a forward attribute and define the target component as well as the event to be handled in following format forward="event-name=target-component.target-event". For more details refer to forward attribute reference here.
2) In ZK 6 there is even more elegant way to achieve this using SelectorComposer and annotations to define event handlers. For e.g.
Please refer to this smalltalk for more details on SelectorComposer