JSF根据selectone菜单显示PanelGrid行/项目

时间:2015-09-17 14:46:21

标签: ajax jsf

如果选择的关系是儿子或女儿,我有一个提交表格,并希望显示他们进入生日的行。

我终于开始工作了,但是使用private void timer1_Tick(object sender, EventArgs e) { this.TopMost = true; } 感觉很笨拙和冗长。除非我使用了<p:row>然后需要额外的&lt; {{},否则我无法使更新生效1}} on first / last name textinputs,因为如果在下拉列表中的选择之前输入它们的值将消失。

这有效,但看起来很冗长

@form
  • 当我保留panelGrid但仅对selectOneMenu ajax使用update =“birthrow”并删除了inputText ajax时,birthdate行没有按预期更新,包括在提交表单时出错(即需要姓氏) ,然后ajax更新停止工作)

    • 最初我没有使用p:row或p:列,而是使用面板网格上的columns属性。但是基于BalusC的这个How to rendered <p:selectOneMenu>,我知道我需要一个包装器组件,这就是我进入p:row路由的原因。

    • 但有没有更简洁的方法不在文本输入上使用所有p:行和额外的ajax?

1 个答案:

答案 0 :(得分:1)

您可以将单个单元格包裹在<h:panelGroup>中,而不需要<p:row><p:column>详细程度。

<h:panelGroup id="birthdateLabel">
    <h:outputLabel ... />
</h:panelGroup>
<h:panelGroup id="birthdateInput">
    <p:calendar ... />
</h:panelGroup>
<p:message ... />

要更新它们,只需使用update="birthdateLabel birthdateInput"