【问题标题】:Primefaces 5.0 dialog widgetvarPrimefaces 5.0 对话框小部件变量
【发布时间】:2014-09-05 05:09:44
【问题描述】:

我正在使用 primefaces 5 和 wildfly 服务器构建网站。我在使用组件时遇到问题。我在每一行都有如下。按钮定义了调用支持 bean 方法的 actionlistener 属性,之后它应该显示对话框。这是一些代码:

<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE composition PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml"
                xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
                xmlns:h="http://xmlns.jcp.org/jsf/html"
                xmlns:p="http://primefaces.org/ui"
                xmlns:pt="http://java.sun.com/jsf/composite/components"
                template="../templates/mainTemplate.xhtml">

    <ui:define name="title"></ui:define>

    <ui:define name="main-content">

        <h:form>
            <p:dataTable id="dataTable" value="#{bean.list}" var="item"
                         styleClass="hide-column-header small-text">

                <!-- some columns -->

                <p:column style="width: 18%; text-align: center;">
                    <p:commandButton value="Open dialog" actionListener="#{bean.buttonListener(item)}" oncomplete="PF('dlg').show();"/>
                </p:column>

            </p:dataTable>
        </h:form>

        <p:dialog id="dialog" widgetVar="dlg" resizable="false" modal="true"
                  header="Dialog">
            <h:form> <!-- some inputs --> </h:form>
        </p:dialog>
    </ui:define>

</ui:composition>

但它不起作用。我检查了 chrome 控制台并收到消息“var 的小部件' var 'dlg' 的小部件不可用!”单击按钮时,我检查了“Primefaces.widgets”,实际上我的对话框没有小部件。谁能帮我解决这个问题?

//编辑
好的,我终于让它工作了。通过反复试验,我在模板中找到了这一行:

<script type="text/javascript" src="//code.jquery.com/jquery-2.1.1.min.js"></script>

删除它后,一切都开始按计划工作。我认为这是因为 primefaces 带有自己的 jquery 版本对吗?

【问题讨论】:

  • 你可以试试 PF(':dlg') 吗?
  • 您的案例是非常基本的案例,应该可以。检查页面加载时是否有任何 javascript 错误。
  • 您也可以发布您的“bean”代码吗?
  • 现在一切正常,检查编辑的消息。
  • 是的,我在 PrimeFaces 的 v5 之上加载了一个额外的 jQuery。通过删除“手动加载”库,pf 对话框运行良好。

标签: jsf primefaces dialog


【解决方案1】:

Primefaces 已经有一个 jQuery,因此非常建议在使用 Primefaces 时不要使用另一个 jQuery 库。

尝试删除外部 jQuery 库并通过命令 PF('dlg').show(); 调用对话框

您可以在迁移指南中查看此更改和其他更改:https://code.google.com/p/primefaces/wiki/MigrationGuide

【讨论】:

  • 为我工作!谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-25
  • 1970-01-01
  • 1970-01-01
  • 2017-06-04
  • 2014-08-01
  • 2013-05-22
  • 2023-04-03
相关资源
最近更新 更多