【问题标题】:Primefaces Commandbutton not working after an update made by select boxPrimefaces Commandbutton在选择框进行更新后不起作用
【发布时间】:2014-02-12 03:05:02
【问题描述】:

我的页面中有四个选择菜单。我的问题很奇怪,即如果您单击提交,没有选择任何下拉菜单,它工作正常。但是当我选择子组下拉菜单,稍后如果我单击提交按钮,它不会调用它打算调用的方法......这是我的代码..

<?xml version="1.0"?>
<f:view xmlns="http://www.w3.org/1999/xhtml" xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html" xmlns:p="http://primefaces.org/ui" xmlns:ui="http://java.sun.com/jsf/facelets">
<h:head/>
<h:body>    
<h:form id="form">
            <p:panel header="Service Details" style="width:800px">

            <p:panelGrid columns="4">
                <h:outputText value="Group: " />
                <p:selectOneMenu value="#{helpDeskBean.group}">
                    <f:selectItem itemLabel="Select One" itemValue="" />
                    <f:selectItems value="#{helpDeskBean.createRequestDTO.groupsList}" var="item" itemLabel="#{item.groupdesc}" itemValue="#{item.groupid}" />
                    <p:ajax event="change" listener="#{helpDeskController.groupChange}" update="subGroupID"  partialSubmit="true"/>
                </p:selectOneMenu>


                <h:outputText value="Sub Group: " />
                <p:selectOneMenu value="#{helpDeskBean.subGroup}" id="subGroupID">
                <f:selectItem itemLabel="Select One" itemValue="" />
                    <f:selectItems value="#{helpDeskBean.groupChangeList}" var="item2" itemLabel="#{item2.subGroupDesc}" itemValue="#{item2.subGroupCode}" />
                    <p:ajax event="change" listener="#{helpDeskController.SubGroupChange}" update="serviceID" />
                </p:selectOneMenu>

                <h:outputText value="Service: " />
                <p:selectOneMenu value="#{helpDeskBean.service}" id="serviceID">
                <f:selectItem itemLabel="Select One" itemValue="" />
                    <f:selectItems value="#{helpDeskBean.groupChangeList}" var="item1" itemLabel="#{item1.serviceDesc}" itemValue="#{item1.serviceCode}" />
                </p:selectOneMenu>

            </p:panelGrid>
        </p:panel>
<p:commandButton value="Submit" actionListener="#{helpDeskController.createHDRequest}"/>
    </h:form>
</h:body>

【问题讨论】:

  • 在您的 javascript 控制台(在网络选项卡上)寻找线索。您可能缺少验证/转换错误

标签: jsf jsf-2 primefaces jsf-2.2 selectonemenu


【解决方案1】:

在第二个下拉列表的 ajax 更改事件中,您正在更新 id 'serviceID'。如果在您的 DOM 树中未找到此组件,您将在服务器控制台中收到错误消息,指出未找到组件“serviceID”。

如果您遇到该错误,那么这可能是可能的原因。通过检查您的页面查看源,提供您要更新的组件 ID 的确切 ID。

希望这会有所帮助。

【讨论】:

  • 对不起复制粘贴问题..实际上已经存在一个带有“serviceId”的组件..请查看我的编辑..
  • 好的。那么你能描述一下不工作对你意味着什么吗?在命令按钮上添加属性 process="@this,commaseperatedcomponentIdsToProcess" 并尝试一下。
猜你喜欢
  • 2015-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-16
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多