Tapestry单选按钮事件?

时间:2013-06-19 14:48:38

标签: tapestry

当我选择了RadioButton时,我想在页面的一部分上进行Ajax / Zone更新。

<t:RadioGroup t:id="vehicleAvailableGroup" value="vehicle.isAvailable">
  <t:label  for="vehicleAvailable" />
  <t:radio t:id="vehicleAvailable" value="literal:true" label="literal:Yes" />
  <t:label for="vehicleNotAvailable" />
  <t:radio t:id="vehicleNotAvailable" value="literal:false" label="literal:No" />
</t:RadioGroup>

处理创建活动或处理我可能忽略的现有活动的最佳方式是什么?

我试过添加onclick哪个不起作用,也没有这个:

@OnEvent(value = EventConstants.VALUE_CHANGED, component = "vehicleAvailableGroup")

编辑:Speling

2 个答案:

答案 0 :(得分:2)

在JumpStart here中查看Geoff Callender的zoneUpdater mixin。 mixin侦听字段上的客户端事件,并使用当前字段值触发服务器端事件。

IMO应该是tapestry-core的一部分,因为这是一个常见的要求。

答案 1 :(得分:0)

我写了一个observe mixin,灵感来自jumpstart的zoneUpdater mixin。我觉得它比zoneUpdater更加用户友好,而且功能更丰富。

  • 您可以将可配置的客户端字段列表传递给服务器端事件。
  • 有一个可选的context属性,可以在服务器端事件中传递,这在呈现loop中的字段时非常有用。
  • 您不需要乱用请求参数,因为字段值会在服务器端事件上下文中传递。
  • 您可以收听任何客户端元素,而不仅仅是字段。因此,您可以听一个元素的点击并发送另一个字段的值。

演示here