下拉列表选择中的JSF ajax替换元素

黄福昌

我有一个包含2列的数据表,每列都是一个下拉列表。我希望它:

1)根据在第一个下拉列表中选择的选项填充第二个下拉列表的选项

2)如果第一个下拉列表选择为“其他”,则第二个下拉列表将替换为文本框。

下面是我的代码:

<p:column style="vertical-align: bottom;" headerText="Type">
   <h:selectOneMenu id="problemTypeDropdown" value="#{problem.type}">
        <f:selectItems value="#{backingBean.problemTypeList}"/>
            <p:ajax listener="#{backingBean.updateDescriptionDropdownList}"
                    update="problemDescriptionDropdown, problemDescText" />
            <f:attribute name="item" value="#{problem}"/>
            </h:selectOneMenu>
</p:column>
<p:column style="width: 200px; vertical-align: bottom;" headerText="Description">
    <h:selectOneMenu id="problemDescriptionDropdown"
                     value="#{problem.description}"
                     rendered="#{problem.type!='Other'}">
        <f:selectItems value="#{backingBean.descriptionDropdownList}"/>
    </h:selectOneMenu>
    <p:inputText id="problemDescText"
                 value="#{problem.description}"
                 rendered="#{problem.type=='Other'}"/>
</p:column>

后备豆:

public void updateDescriptionDropdownList(AjaxBehaviorEvent event) {
    ProblemItem di = (ProblemItem)event.getComponent().getAttributes().get("item");

    if (di.getType().equals("Other"))
        return;
    descriptionDropdownList = getDescriptionList(di.getType());
}

现在可以基于对第一个列表的选择来填充第二个列表,但是如果第一个列表是“ Other”,则第二个列表不会被文本框替换。

有人可以告诉我我的代码有什么问题以及如何解决吗?非常感谢你。

tt_emrah

您需要将h:selectOneMenu和p:inputText放置在容器/面板中,并在ajax事件发生后更新容器。

    <p:column style="vertical-align: bottom;" headerText="Type">
        <h:selectOneMenu id="problemTypeDropdown" value="#{problem.type}">
            <f:selectItems value="#{backingBean.problemTypeList}"/>
                <p:ajax listener="#{backingBean.updateDescriptionDropdownList}"
                    update="problemDescPanel" />
                <f:attribute name="item" value="#{problem}"/>
        </h:selectOneMenu>
    </p:column>
    <p:column style="width: 200px; vertical-align: bottom;" headerText="Description">
        <h:panelGroup id="problemDescPanel">
            <h:selectOneMenu id="problemDescriptionDropdown"
                 value="#{problem.description}"
                 rendered="#{problem.type!='Other'}">
                <f:selectItems value="#{backingBean.descriptionDropdownList}"/>
            </h:selectOneMenu>
            <p:inputText id="problemDescText" rendered="#{problem.type=='Other'}"
                 value="#{problem.description}" />
        </h:panelGroup>
    </p:column>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在选择下拉列表中的Rails中使用Ajax

来自分类Dev

从下拉列表中选择一个元素从其他下拉列表中删除JQuery

来自分类Dev

python替换列表中的元素

来自分类Dev

替换列表中的某些元素

来自分类Dev

替换数组列表中的元素?

来自分类Dev

替换列表中的元素-haskell

来自分类Dev

替换python列表中的元素

来自分类Dev

选择下拉列表中的jQuery将数据推送到标签元素

来自分类Dev

合并选择下拉列表中的元素,同时保持正确的关联ID

来自分类Dev

如何在angular2的表单元素中获取下拉列表选择的值

来自分类Dev

单击 AngularJS 中的下拉列表以获取除使用 Python 和 Selenium 选择以外的元素

来自分类Dev

如何使用jQuery从AJAX生成的选择下拉列表中获取文本选项?

来自分类Dev

更改数据表中ajax请求中下拉列表的选择选项

来自分类Dev

在Angular js中选择元素形式list1下拉列表后,如何从list2下拉列表中的数组中删除元素?

来自分类Dev

在Angular js中选择元素形式list1下拉列表后,如何从list2下拉列表中的数组中删除元素?

来自分类Dev

For循环替换列表元素

来自分类Dev

Dplyr替换元素列表

来自分类Dev

在下拉列表中选择标记为列表的元素

来自分类Dev

如何使用selenium webdriver java从城市字段的GoIbibo中的自动选择下拉列表中选择一个元素

来自分类Dev

依赖Django和Ajax的html选择列表(级联下拉列表)

来自分类Dev

替换XML驱动的下拉列表中的值

来自分类Dev

在JSF中为下拉元素添加工具提示

来自分类Dev

替换ICollection中的元素

来自分类Dev

减少选择元素中的下拉宽度

来自分类Dev

如何基于使用ajax从另一个下拉列表中选择的值来更改下拉列表中的选项?

来自分类Dev

选择要在Python中替换的元素

来自分类Dev

选择并替换R中矩阵的元素

来自分类Dev

如何在输入框中仅显示名称,但在选择元素的下拉列表中仅显示名称和数字

来自分类Dev

我想使用Ajax将ID从视图传递给Codeigniter中的控制器,并更新DB中的下拉列表选择

Related 相关文章

  1. 1

    在选择下拉列表中的Rails中使用Ajax

  2. 2

    从下拉列表中选择一个元素从其他下拉列表中删除JQuery

  3. 3

    python替换列表中的元素

  4. 4

    替换列表中的某些元素

  5. 5

    替换数组列表中的元素?

  6. 6

    替换列表中的元素-haskell

  7. 7

    替换python列表中的元素

  8. 8

    选择下拉列表中的jQuery将数据推送到标签元素

  9. 9

    合并选择下拉列表中的元素,同时保持正确的关联ID

  10. 10

    如何在angular2的表单元素中获取下拉列表选择的值

  11. 11

    单击 AngularJS 中的下拉列表以获取除使用 Python 和 Selenium 选择以外的元素

  12. 12

    如何使用jQuery从AJAX生成的选择下拉列表中获取文本选项?

  13. 13

    更改数据表中ajax请求中下拉列表的选择选项

  14. 14

    在Angular js中选择元素形式list1下拉列表后,如何从list2下拉列表中的数组中删除元素?

  15. 15

    在Angular js中选择元素形式list1下拉列表后,如何从list2下拉列表中的数组中删除元素?

  16. 16

    For循环替换列表元素

  17. 17

    Dplyr替换元素列表

  18. 18

    在下拉列表中选择标记为列表的元素

  19. 19

    如何使用selenium webdriver java从城市字段的GoIbibo中的自动选择下拉列表中选择一个元素

  20. 20

    依赖Django和Ajax的html选择列表(级联下拉列表)

  21. 21

    替换XML驱动的下拉列表中的值

  22. 22

    在JSF中为下拉元素添加工具提示

  23. 23

    替换ICollection中的元素

  24. 24

    减少选择元素中的下拉宽度

  25. 25

    如何基于使用ajax从另一个下拉列表中选择的值来更改下拉列表中的选项?

  26. 26

    选择要在Python中替换的元素

  27. 27

    选择并替换R中矩阵的元素

  28. 28

    如何在输入框中仅显示名称,但在选择元素的下拉列表中仅显示名称和数字

  29. 29

    我想使用Ajax将ID从视图传递给Codeigniter中的控制器,并更新DB中的下拉列表选择

热门标签

归档