【问题标题】:JSF update component from different form, boths forms with prependid false来自不同表单的 JSF 更新组件,两种表单都带有 prependid false
【发布时间】:2014-02-21 16:34:17
【问题描述】:

嗨,我有这个场景,我有 2 个表单,每个表单都使用 preprendId=false,第一个有一个 h:panelGroup,我想从第二个 h:form 更新。我遇到的问题 是我不知道我必须放什么字符串来更新我的 panelGroup。我试过这个字符串:

panelGroupComboId 和 :panelGroupComboId

但我总是得到:找不到从...引用的表达式“:panelGroupComboId”的组件

因为我需要至少在第一个表单(我的 panelGroup 所在的位置)中使用 preprendId=false,所以我无法设置 preprendIf=true,但如果我这样做了,我可以使用以下方法更新我的组件有任何问题::loginFormRegistroId :panelGroupComboId

但请记住,我需要使用 preprendId=false,当我使用 preprendId=false 时,我可以看到使用 我的 h:panelGroup 被转换为 id 为 panelGroupComboId 的 div 的萤火虫,这就是为什么我不必调用更新它的原因。

preprendId=true 是唯一可行的方法吗?

第一式

 <h:form id="loginFormRegistroId" prependId="false">
    <h:panelGroup id="panelGroupComboId" layout="block">
        <select id="comboCarreraId" name="comboCarreraId" class="form-control">
            <ui:repeat value="#{miBean.list}" var="obj">
                <option value="#{obj.id}">#{obj.name}</option>
            </ui:repeat>
        </select>
    </h:panelGroup>
</h:form>

第二种形式

 <h:form prependId="false">
    <p:remoteCommand
        name="cargarCarrerasRemoteCommand"
        process="@this"
        actionListener="#{miBean.myListener}"
        update="panelGroupComboId">
    </p:remoteCommand>
</h:form>

顺便说一下,我想更新整个第一个 FORM,只是我的 h:panelGroup

【问题讨论】:

标签: jsf jsf-2 primefaces


【解决方案1】:

从表单中删除 prependId。将代码更新为

<h:form>
    <p:remoteCommand
        name="cargarCarrerasRemoteCommand"
        process="@this"
        actionListener="#{miBean.myListener}"
        update=":loginFormRegistroId:panelGroupComboId">
    </p:remoteCommand>
</h:form>

【讨论】:

    猜你喜欢
    • 2011-04-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-05
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    相关资源
    最近更新 更多