0

我想<p:watermark>用作<p:inplace>编辑器。我试过如下

<p:watermark for="txtSvcName" value="Please enter service name..." />
<p:inplace id="ipSvcName" editor="true" >                                   
    <p:inputText id="txtSvcName" value="#{service.serviceName}"  maxlength="50" 
     readonly="#{not subMerchantManagement.editPerspective}"    converter="UpperCaseConverter" />                                   
</p:inplace>

但不幸的是,这不起作用。我怎样才能做到这一点?

4

1 回答 1

0

根据Primefaces Showcasep:watermark ,当某些事件发生时,您必须通过 javascript 调用。p:inputText您可以在哪里拨打电话有很多事件: onbluronchange...只需PrimeFaces.showWatermarks();在您需要的事件发生时调用函数。您也应该查看Primefaces 文档,因为还有另一个功能可以在您需要时清除水印。祝你好运。

已编辑

当用户保存 inplace 内容时,您可以触发 ajax 事件。处理该请求后,只需调用 show 函数并更新主容器。我想这会很有用。

<p:panel id="panel">
    <p:watermark for="txtSvcName" value="Please enter service name..." />
    <p:inplace id="ipSvcName" editor="true" emptyLabel="Please enter service name..." >                                   
        <p:inputText id="txtSvcName" value="#{service.serviceName}" maxlength="50" 
            readonly="#{not subMerchantManagement.editPerspective}"    converter="UpperCaseConverter" /> 
        <p:ajax event="save" listener="#{subMerchantManagement.handleSave}" 
            oncomplete="PrimeFaces.showWatermarks();" update="panel" />  
    </p:inplace>
</p:panel>
于 2013-01-13T12:37:57.303 回答