我想使用<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>
但不幸的是这不起作用。我怎样才能做到这一点呢?
根据Primefaces Showcase,当一些事件发生时,您必须通过javascript调用p:watermark
。在p:inputText
上有很多事件,你可以打电话:onblur
, onchange
……只需调用PrimeFaces.showWatermarks();
函数时,你需要的发生。您也应该看一下Primefaces Documentation,因为有另一个函数可以在需要时清除水印。好运。
可以在用户保存插入内容时触发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>