Primefaces条件工具提示

时间:2013-07-25 20:01:15

标签: jsf jsf-2 primefaces

<p:spinner id="amount" 
           min="0" 
           max="#{bean.availableAmount}" 
           value="#{bean.amount}" />
<p:tooltip for="amount" 
           showEvent="focus" 
           hideEvent="blur" 
           disabled="#{bean.amount lt bean.maxAmount}" 
           value="Maximum amount has been reached" />

我正在寻找一种方法来实现类似上面示例中的disabled属性。换句话说,我想实现一个条件工具提示,只显示条件是否满足。有没有人知道实现这个目标的方法?

2 个答案:

答案 0 :(得分:1)

为什么不使用rendered代替disabled?在这种情况下,当p:tooltip更改其值时,您需要更新p:spinner元素。使用Primefaces展示中的ajax spinner

<p:spinner id="amount" min="0" max="#{bean.availableAmount}" value="#{bean.amount}">  
  <p:ajax update="tooltip" process="@this" />  
</p:spinner>

<p:tooltip id="tooltip"
           for="amount" 
           showEvent="focus" 
           hideEvent="blur" 
           rendered="#{bean.amount lt bean.maxAmount}" 
           value="Maximum amount has been reached" />

更新(阅读评论后):

如果要隐藏工具提示,当响应返回浏览器时,您可以命令从服务器端执行javascript代码:

RequestContext context = RequestContext.getCurrentInstance();
context.execute("hideTooltip();");

然后在你的javscript代码中调用hideTooltip

function hideTooltip() {
  $("tooltip").hide();
}

答案 1 :(得分:1)

您还可以使用工具提示的小部件在客户端实现此目的:

<p:spinner id="amount" min="0" max="#{bean.availableAmount}" value="#{bean.amount}">  
  <p:ajax oncomplete="myTooltip.hide()" process="@this" />  
</p:spinner>

<p:tooltip id="tooltip"
       for="amount" 
       showEvent="focus" 
       hideEvent="blur" 
       widgetVar="myTooltip"
       value="Maximum amount has been reached" />