gpt4 book ai didi

java - Primefaces ajax 更新不适用于

内的字段

转载 作者:行者123 更新时间:2023-12-02 12:02:15 25 4
gpt4 key购买 nike

我有一个像这样的primefaces代码。选择下拉菜单后,如果值为“M”,我想渲染评论文本区域。

它工作正常并显示文本区域,但在选择“F”时,即使 renderComments 值为 false,它也不会隐藏文本区域。

我认为由于 标记,更新未正确进行。请问如何解决这个问题

HTML

        <p:panelGrid>

<p:row>
<p:column style="width:15%">
<p:selectOneMenu id="gender" value="#{myBean.model.gender}">
<f:selectItem itemValue="M" itemLabel="Male" />
<f:selectItem itemValue="F" itemLabel="Female" />
<p:ajax event="change" listener="#{myBean.genderListener}" process="@this" update="commentsCol comments" />
</p:selectOneMenu>
</p:column>

<p:column id="commentsCol" style="width:50%">
<p:inputTextarea id="comments" cols="100" rows="2" value="#{myBean.model.comments}" rendered="#{myBean.renderComments}" />
</p:column>
</p:row>


</p:panelGrid>

bean

/**
* Event for gender.
*/
public void genderListener() {

if ("M".equalsIgnoreCase(model.getGender())) {
renderComments = true;
}
else {
renderComments = false;
}
}

更新

如果我使用 update="@form"就可以了。然而,它更新了我不期望的整个表格。不确定如果我只指定 ids 会出现什么问题(commentsCol comments)

最佳答案

我通过在 p:panelGrid 上放置一个 id 并更新它而不是列来解决了这个问题。

    <p:panelGrid id="foo">

<p:row>
<p:column style="width:15%">
<p:selectOneMenu id="gender" value="#{myBean.model.gender}">
<f:selectItem itemValue="M" itemLabel="Male" />
<f:selectItem itemValue="F" itemLabel="Female" />
<p:ajax event="change" listener="#{myBean.genderListener}" process="@this" update="foo" />
</p:selectOneMenu>
</p:column>

<p:column id="commentsCol" style="width:50%">
<p:inputTextarea id="comments" cols="100" rows="2" value="#{myBean.model.comments}" rendered="#{myBean.renderComments}" />
</p:column>
</p:row>


</p:panelGrid>

关于java - Primefaces ajax 更新不适用于 <p :column> 内的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47158671/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com