我们要求只从rich:pickList中选择一个元素。在选择项目后,如何禁用控件或阻止人们从左侧移动其他数据。
答案 0 :(得分:0)
我并不理解这个要求,因为rich:pickList
专门用于从另一个列表中选择列表。
理想情况下,像<h:selectOneListbox>
这样的组件在您的案例中会更容易使用。
但是,如果您真的必须使用rich:pickList
,我建议您使用onlistchange
Javascript事件。更改列表时将调用此事件。所以你可以尝试获得所选列表的大小,如果这个大小等于1(即使用已经选择了一个项目),你只需返回false。这通常会取消用户所做的操作(即添加另一个元素)。
另一个想法,仍然基于onlistchange
事件的使用(或者在这种情况下可能是onlistchanged
更好)是在所选元素列表中添加一个元素时禁用按钮。
最后的想法是在我的第二个想法中做同样的事情,但使用Ajax。正如您在Richfaces Live Demo站点中所看到的,有一个使用此组件的示例,其中一个面板可以计算所选元素的数量。因此,当此计数器等于1时,您可以尝试禁用添加按钮。