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