在Wicket中,我创建了一个包含一个下拉列表和相同数据类型的调色板的表单。如果我想根据下拉列表中选择的值将项目从可用部分移动到所选部分。怎么做?
答案 0 :(得分:0)
执行此操作的两种方法:使用javascript的客户端或使用ajax的服务器端。
如果您使用Ajax执行此操作,则可以使用AjaxEventBehavior
检测下拉列表中是否存在更改。然后将调色板选择的模型更改为您想要选择的项目。然后通过将调色板添加到AjaxEventBehavior#onEvent
给您的AjaxRequestTarget
重新渲染调色板。与javascript解决方案相比,这会有一个轻微的延迟,但它会更清晰,因为它将使用Palette的方式(在某种意义上)。我觉得它可以让你的生活更轻松。
如果您是通过javascript执行此操作,则可以将onchange事件侦听器绑定到您的下拉列表,这会将选项从一侧移动到另一侧。调色板使用两个<select>
组件进行显示,一个<input type="hidden"/>
用于将选择传递回wicket。为了通过javascript执行您所要求的操作,您必须将<option>
组件从一个<select>
表示未选定的组件移动到另一个组件,然后修改隐藏输入的值以包含/不再包含选择的ID值。
在我看来,这个解决方案有点脏,但它可能会让你获得最佳性能。