我使用的是IceFaces的3.3版本,我们有一个人的数据表。我们需要一个扩展按钮,允许用户更新数据表中某个人的任何属性。标签ace:expansionToggle是我认为可以使用的标签,但如果我用changeListener捕获事件,客户端已经切换组件。我需要验证该面板中的所有字段,以便在验证失败时,panelExpansion组件不会关闭。这里有一些代码来描述我正在尝试做什么。将组件绑定到后台bean似乎是一个好主意,但如果我在expandToggle的getter和setter中设置了断点,那么在我可以对其执行任何操作之前,客户端已经折叠了该面板。在客户端切换组件之前是否有方法来拦截ExpansionToggle valueChange事件?
<ace:dataTable id="driverListTable" value="#{persons}" var="person">
<ace:column id="exp">
<ace:expansionToggler
binding="#{personBean.expansionToggle}"
changeListener="#{directDriverInfoBean.handleToggleEvent}"/>
</ace:column>
<ace:column headerText="#{msg.label_driver}">
<ice:outputText value="#{person.firstName} #{person.lastName}"/>
</ace:column>
<ace:column styleClass="dobColWidth" headerText="#{msg.label_dob}">
<ice:outputText value="#{person.userDob}"/>
</ace:column>
<ace:column styleClass="driverColWidth" headerText="Marital Status">
<ice:outputText value="#{person.maritalStatus}"/>
</ace:column>
<ace:column headerText="Person Status">
<ice:outputText value="#{person.status}"/>
</ace:column>
<ace:panelExpansion>
<show all fields for person here>
</ace:panelExpansion>
<ace:dataTable>
我在这里有什么选择?
感谢, 帕特里克