2014-09-30 2 views
0

Что мне нужно сделать, позвонить мне диалог с ManagedBean, так же, как это шоу случае: http://www.primefaces.org/showcase/ui/df/basic.xhtmlвызовов Dialog из ManagedBean теперь показывает PrimeFaces 5

Это выглядит очень тривиально, но я новичок в JSF и, возможно, есть то, что витрина предполагает, что я должен знать, чтобы она работала.

, что я сделал, было очень похоже на Showcase:

файл myDialog.xhtml

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:p="http://primefaces.org/ui"> 
<h:head> 
    <title>Dialog Test</title> 
    <style type="text/css"> 
.ui-widget { 
    font-size: 90%; 
} 
</style> 
</h:head> 
<h:body> 
    <h1>Dialog Working</h1> 
</h:body> 
</html> 

На странице "клиент" страницы:

<p:commandButton value="Open Dialog" ajax="true" 
       actionListener="#{testMB.open}" 
       /> 

public void open() { 
      RequestContext.getCurrentInstance().openDialog("myDialog"); 
} 

Когда я пытаюсь вызвать диалог Ничего не произошло!

В консоли Firebug я получил «Виджет для var» widget_frmBody_j_idt88 «недоступен!»

Я заметил .xhtml файл из Showcase не имеет, так что я попробовал этот подход:

<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml" 
    xmlns:h="http://java.sun.com/jsf/html" 
    xmlns:p="http://primefaces.org/ui"> 

    <p:dialog widgetVar="testDialog"> 
     <h1>This is a Dialog</h1> 

    </p:dialog> 

</html> 

RequestContext rc = RequestContext.getCurrentInstance(); 
rc.execute("PF('testDialog').show()"); 

И я получил:

TypeError: PF (...) не определено jquery.js : 1 "Виджет для var 'testDialog' недоступен!"

Что делать, если это работает? ???

ответ

0

Это мой пример для вас.

XHTML

<h:form> 
    <h:panelGrid columns="1" cellpadding="1"> 
     <p:commandButton value="Basic" 
         process="@this" 
         update="@form" 
         actionListener="#{dialogView.openDialog}"/> 
    </h:panelGrid> 

    <p:dialog header="Basic Dialog" 
       widgetVar="dlg1" 
       minHeight="40"> 
     <h:outputText value="Dialog open!" /> 
    </p:dialog> 
</h:form> 

ManagedBean

public void openDialog() { 
    RequestContext rc = RequestContext.getCurrentInstance(); 
    rc.execute("PF('dlg1').show()"); 
} 
+0

Если диалог XHTML быть разделены, или это может быть внутреннее большой Xhtml страницы? – 2015-04-08 09:27:09

+1

@SajjadHTLO вы можете использовать диалог p: dialog как отдельную страницу, так и вложенную внутреннюю часть большой страницы xhtml. Тем не менее, я предлагаю вам разделить диалог p: на другой странице и включить в свою большую страницу xhtml. – wittakarn

Смежные вопросы