我有一个包含值列表的组合框。 ComboBox未绑定到数据源。 我在组合框上有一个onClick事件,我需要知道选择了什么值。我可以做一个getComponent(“comboBox1”)。getValue()但我知道这是访问控件值的最低效方法。有没有更好的方法来访问所选的值?
答案 0 :(得分:7)
我会将组合框绑定到viewScope变量。易于访问和在其他地方使用。 但是有很多方法可以获得价值,但这是我喜欢的方式。
答案 1 :(得分:3)
在任何服务器端事件处理程序的上下文中,JavaScript变量this
引用事件处理程序本身。因为事件处理程序实际上是组件,并且被认为是与它们关联的任何组件的“子”,所以表达式this.getParent()
将返回关联组件的句柄。
因此,当您只是尝试获取触发事件的同一组件的值时(在您的情况下,组合框的onClick
事件):
this.getParent().getValue()
这不会遇到与getComponent()
相同的低效率,因为它不必搜索...它只是在组件树中向上导航一个级别。但是,如果其他组件将从了解其值中获益,则还应遵循Fredrik的建议并将组件绑定到viewScope
变量,这样您就可以从内存中检索值,而不是尝试从其他位置查找UI组件。页面结构。