0

当我单击一个图标时,我试图显示一个表单来修改我的表格中的一行,但是当我单击时没有任何反应,我使用的是 primefaces 3.4,我的 bean 没有问题,请帮助

       <h:form>


      <h1><h:outputText value="List Des Agents De Ministère"/></h1>


 <p:dataTable value="#{agentBean.agentministeres }"     id="agentList"
              paginator="true" rows="10" var="item">
                               <p:column>
                                    <f:facet name="header">
                                        <h:outputText value="Action"/>
                                    </f:facet>
     <!--the problem in this commmandbutton i don't know if display or oncomplete dosn't word -->         
              <p:commandButton  id="selectButton"  
                                oncomplete="PF('dialog').show()" 
                                update="display" 
                                icon="ui-icon-search" 
                                title="View"/>  

                                </p:column>
                                <p:column>
                                    <f:facet name="header">
                                        <h:outputText value="PrenomAgent"/>
                                    </f:facet>
                                    <h:outputText value="#{item.prenomAgent}"/>
                                </p:column>
                                <p:column>
                                    <f:facet name="header">
                                        <h:outputText value="TelAgent"/>
                                    </f:facet>
                                    <h:outputText value="#{item.telAgent}"/>
                                </p:column>
                </p:dataTable>
                           </h:form>

这是形式:

       <h:form id="display">
                       <p:dialog header="Details" widgetVar="dialog" resizable="false" id="display"  
            showEffect="fade" hideEffect="explode" modal="true">  

      <h:panelGrid id="display" columns="2" cellpadding="4" style="margin:0 auto;">
                                    <h:outputLabel value="NomAgent:" for="nomAgent" />
                                    <h:inputText id="nomAgent" value="#{agentBean.agentministere.nomAgent}" title="NomAgent" />
                                    <h:outputLabel value="PrenomAgent:" for="prenomAgent" />
                                    <h:inputText id="prenomAgent" value="#{agentBean.agentministere.prenomAgent}" title="PrenomAgent" />
                                    <h:outputLabel value="TelAgent:" for="telAgent" />
                                    <h:inputText id="telAgent" value="#{agentBean.agentministere.telAgent}" title="TelAgent" />
          <p:commandButton value="Valider"  image="ui-icon-disk" action="#{agentBean.enregistrerAgent}"  />
 </h:panelGrid>


</p:dialog>  

          </h:form>
4

1 回答 1

1

以下几点将帮助您修复代码。

  1. update="display"无法工作,因为在命名容器中显示不可用。如果<h:form id="display">要更新表格,请使用update=":display"

  2. 尝试将表单放在对话框中,这将解决您可能会遇到的一些问题,而如果您通过 ajax 更新表单,这将隐藏对话框。

    <p:dialog widgetVar="dialog">
        <h:form id="details">
            <!-- input and commandbutton, now form can easily updated on submit -->
        </form>
    </p:dialog>
    
  3. 您必须将选定的行提交给 bean 以在详细信息对话框中显示更新:

    <p:commandButton  id="selectButton" icon="ui-icon-search"             
        update="display" 
        oncomplete="dialog.show();">
        <f:setPropertyActionListener target="#{agentBean.agentministere} value="#{item}"/>
    </p:commandButton>
    
于 2013-08-05T23:26:26.933 回答