p:只有在p:commandButton上单击2次后才会显示对话框

时间:2017-01-06 21:45:02

标签: primefaces jsf-2.2

我试图删除p:dataTable的一行。

  • 首次点击删除按钮时,无法显示该对话框。
  • 对于第二次单击删除按钮,将显示对话框,因此操作成功完成。

Bean是:



@Component()
@Scope("request")
public class ListTrainings 
{
	@Autowired
	public ListTrainings(@Qualifier("applicationManager") ApplicationManager appMgr)
	{
	   this.appMgr= appMgr;
	   lfs  =  new  ArrayList<Formation>();
	   tm  =  new TrainingModel();
	   formation = new  Formation();
	}
		
	@PostConstruct
	public void Initialize()
	{
	   System.out.println("Hello World");
	}

	public  void  selectedRow()
	{
	   status1 =  false;
	   status2 =  false;
	   tm  =  (TrainingModel)  listDatas.getRowData();
	   formation =  appMgr.listTrainingsByRef(tm.getId()).get(0);
	   vb.setFormation(formation);		
	   if(
                  (appMgr.listTrainersByRefTraining(formation.getFormationId()).size()  == 0)
                  &&
                  (formation.getSalleEspace() == null)
             )
	     { status1 =  true; }
	     else
	     { status2 =  true; }
	}
}
&#13;
&#13;
&#13;

XHTML上的按钮是:

&#13;
&#13;
<p:commandButton id="btn"
    		 value="3" 
    		 oncomplete="if(#{listTrainings.status1}) {PF('dlg1').show();}
    		             if(#{listTrainings.status2}) {PF('dlg3').show();}"
    		 update="aw">
       <f:ajax render="btn" execute="@all" listener="#{listTrainings.selectedRow}" />
</p:commandButton>
&#13;
&#13;
&#13;

你能告诉我出了什么问题吗?

1 个答案:

答案 0 :(得分:0)

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

当按钮操作点击使用小部件名称时,按p:对话框。按小部件名称的onclick方法调用按钮。添加如下代码的对话框。

<p:dialog header="Basic Dialog" widgetVar="dlg1" minHeight="40">
<h:outputText value="Resistance to PrimeFaces is futile!" />