jsf2 primefaces通知栏

时间:2015-02-24 09:02:56

标签: jsf-2 primefaces

我想在我的jsf页面中有通知栏。当我使用这个示例代码时,它可以工作

    <p:notificationBar position="top" effect="slide" styleClass="top" widgetVar="notifBar">
        <h:outputText value="Hi ..." style="font-size:36px;" />
    </p:notificationBar>

    <p:commandButton value="Show2" onclick="PF('notifBar').show();" type="button"/>

但是当我使用这段代码时它不起作用

    <p:commandButton value="Show1" onclick="notifBar.show()" type="button"/>

这个PF的原因和作用是什么? 我的最后一种方法是使用自动隐藏通知面板,但是当我使用这样的代码时

    <p:commandButton value="Show2" onclick="PF('notifBar').show();setTimeout(PF('notifBar').hide, 3000)" type="button"/>

显示此错误:

  

未捕获的TypeError:无法读取未定义的属性“效果”   PrimeFaces.widget.NotificationBar.PrimeFaces.widget.BaseWidget.extend.hide

并通过此代码

    <p:commandButton value="Show2" onclick="PF('notifBar').show();setTimeout(notifBar.hide, 3000)" type="button"/>

显示

  

未捕获的ReferenceError:notifBaris未定义

有人可以帮我吗...

1 个答案:

答案 0 :(得分:0)

<p:commandButton value="Show1" onclick="notifBar.show()" type="button"/>

notifBar等于widgetVar="notifBar",这意味着它是客户端组件而您的服务器不知道notifbar,要显示它,您必须这样做:{{ 1}}

按Doc:'widgetVar是客户端变量的名称' here

WRT隐藏通知栏

  

未捕获的ReferenceError:NotifBar未定义

这是因为PF('client_Wiget_War').show;是客户端组件 目前我正在尝试复制您的notifBar方案,但我失败了。