在另一个对话框中编辑时更新对话框中的表

时间:2017-04-06 07:01:51

标签: jsf primefaces datatable updates

我在html页面中有两个对话框。 ONe列出数据表中的所有链接。当我在此对话框上单击编辑时,将打开另一个实际编辑链接的对话框。我的问题是列出所有链接的数据表没有得到更新。请帮我解决一下这个。我尝试了一切,但都是徒劳。

dialog1.xhtml

<p:dialog id="selectLinkDialog" styleClass="fnp-dialog"
            modal="true" 
            appendToBody="false"
            widgetVar="selectLinkDialog">

            <h:form id="selectLinkForm">

                <p:dataTable id="externalLinksTable"
                    value="#{fnpHomeBackingBean.externalLinks}" var="model"
                    widgetVar="fnpHomeExternalLinksTable">



                    <p:column headerText="Actions">
                            <p:commandLink id="external-link-edit-#{index}" 
                              value="Edit" update="editLinkDialog"              
                              oncomplete="PF('editLinkDialog').show(); 
                             return false;">
                             <f:setPropertyActionListener value="#{model}" 
                               target="#
                                {fnpHomeBackingBean.selectedExternalLink}" />
                            </p:commandLink>
                    </p:column> 
                </p:dataTable>              
            </h:form>
        </p:dialog>

dialog2.xhtml

<p:dialog id="editLinkDialog" header="Edit External Link" modal="true"
            widgetVar="editLinkDialog">
            <h:form id= "editLinkForm">


                <p:commandButton id="saveExternalLinkButton" value="Save" 
                    update=":selectLinkForm:externalLinksTable" 
                    actionListener="#{fnpHomeBackingBean.saveExternalLink()}">
                </p:commandButton>
                </h:form>
</p:dialog>

1 个答案:

答案 0 :(得分:0)

尝试使用jquery选择器更新表单

...

<p:commandButton id="saveExternalLinkButton" value="Save" 
    update="@(form[id*='selectLinkForm'])"
    actionListener="#{fnpHomeBackingBean.saveExternalLink()}">
</p:commandButton>

...