【问题标题】:How to update id generated from a backing bean如何更新从支持 bean 生成的 id
【发布时间】:2012-01-19 03:51:47
【问题描述】:
<p:outputPanel>
    <h:selectOneRadio value="#{myBean.favColor1}">
  <f:selectItem itemValue="Red" itemLabel="Color1 - Red" />
  <f:selectItem itemValue="Green" itemLabel="Color1 - Green" />
  <f:selectItem itemValue="Blue" itemLabel="Color1 - Blue" />
    </h:selectOneRadio>
    <p:ajax update="picker,#{myBean.clientId}"/>
</p:outputPanel>

我需要更新一个以编程方式生成 id 的组件。

【问题讨论】:

    标签: jsf primefaces


    【解决方案1】:

    客户端 ID 应以默认命名容器分隔符 : 为前缀,以便绝对解析为 UIViewRoot 而不是相对于父命名容器(这适用于组件 ID,但不适用于客户 ID)。

    <p:ajax update="picker,:#{myBean.clientId}"/>
    

    作为一种完全不同的替代方案(我发现将客户端 ID 绑定到支持 bean 非常麻烦),只需将组件绑定到视图并引用它,而不是通过中间托管 bean。

    <h:someComponent binding="#{foo}" />
    ...
    
    <p:ajax update="picker,:#{foo.clientId}"/>
    

    【讨论】:

    • 谢谢,单独工作正常,但会破坏其他自动完成组件。我需要弄清楚。
    • 不客气。是的,这是一个完全不同的问题。如果您遇到问题,请随时提出新问题。
    • BalusC,我把你的两个答案混在一起了question。请发表您对解决方案的想法。谢谢!
    猜你喜欢
    • 2015-02-22
    • 1970-01-01
    • 2013-10-10
    • 1970-01-01
    • 2012-10-31
    • 2023-03-08
    • 2012-04-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多