2014-10-23 2 views
0

hello У меня есть commandLink, который выполняет метод в моем beaking bean-компоненте, этот метод вызывает ejb, который строит строку и помещает ее как атрибут компонента (с геттерами и сеттерами) после выполнения что метод должен поднять модальное диалоговое окно для отображения только значения этого атрибута, но это не так, я вижу метод, который строит пробеги цепи, но не поднимет диалог, это мой код:primefaces commandlink wont show modal dialog

XHTML:

<ui:composition> 
<p:panelGrid columns="3" style="width: 100%" > 
<h:form id="headerForm"> 
<p:column style="width: 15%;height:auto; text-align: center;"> 
<p:graphicImage value="#{loginBean.url}" style="align:center;"/> 
</p:column>      
<p:column> 
<div align="center"> 
<h:outputText styleClass="titleHeader" value="#{loginBean.entityName}" /> 
</div> 
</p:column> 
<p:column style="width: 15%;height:auto; text-align: center;"> 
<div align="right"> 
<h:commandLink onComplete="PF('dlg').show(); return false;" type="button" ajax="false" action="#    {xxxxBean.createString}"> 
<h:outputText value="Contact" /> 
</h:commandLink> 
</div> 
</p:column> 
</h:form> 
</p:panelGrid> 
<p:dialog id="dlg" header="Some title here" widgetVar="dlg" modal="true"> 
<h:outputText value="#{xxxxBean.stringBuild}" /> 
</p:dialog>  
</ui:composition> 

Опорная фасоль:

@ManagedBean 
@SuppressWarnings("serial") 
public class XxxxBean implements Serializable{ 

private String stringBuild; 
private someBeanRemote ejb; 

public XxxxBean() { 
// TODO Auto-generated constructor stub 
try{ 
ejb = EjbConsumer.getRemoteEjb(); 
}catch(Exception e){ 
e.printStackTrace(); 
} 

}  

public void createString(){ 
List<someObject> list = ejb.findAllActiveObjects(Constants.TOP); 
String temp = ""; 
if(list!=null && list.size() > 0){ 
for(int i=0; i < list.size(); i++){ 
temp += list.get(i).getName() + "<br/>";   
} 

this.stringBuild= temp; 
}  

System.out.println(this.stringBuild); 

} 

public void setStringBuild(String stringBuild) { 
this.stringBuild= stringBuild; 
} 

public String getStringBuild() { 
return stringBuild; 
} 

} 

спасибо заранее!

ответ

1

Вы используете ajax=false с oncomplete

oncomplete: на стороне клиента обратного вызова для выполнения при Ajax запрос завершен.

Изменить на:

<p:commandLink oncomplete="PF('dlg').show();" action="#{yourBean.youraction}"></p:commandLink> 

, что по умолчанию Аякса = истина, и все должно работать

+0

Привет! просто нужно поставить update = "dlg", и это сработало, спасибо вам большое !!! – Mariah