【问题标题】:commandButton update attribute not workingcommandButton 更新属性不起作用
【发布时间】:2016-07-04 07:59:55
【问题描述】:

我有一个命令按钮,可以打开一个包含表格的对话框。

当按钮被点击时,对话框会弹出,但它不包含任何内容。

这是我的代码:

<h:panelGroup id="correctionsEntries" layout="block">

    <p:dataTable styleClass="dataTable" id="entriesTable" var="entry" value="#{bean.tableModel.items}">

        <p:columnGroup type="header">
            <p:row>
                <ui:repeat var="column" value="#{bean.tableModel.columns}" varStatus="colStatus">
                    <p:column  headerText="#{column.header}">
                    </p:column>
                </ui:repeat>
            </p:row>
        </p:columnGroup>

        <c:forEach var="column" items="#{bean.tableModel.columns}">

            <c:choose>  
                <c:when test="${column.header eq 'Upload'}">
                    <p:column>
                        <p:commandButton value="Upload" immediate="true" actionListener="#{bean.setSelectedRow(entry)}" oncomplete="PF('upload').show();" />

                        <p:dialog header="Upload" widgetVar="upload" height="10%" width="80%">
                            <p:messages binding="#{bean.component}" /> 
                            <p:fileUpload fileUploadListener="#{bean.uploadCSV}" />
                        </p:dialog>
                    </p:column>
                </c:when>

                <c:when test="${column.header eq 'Export'}">
                    <p:column>
                        <p:commandButton value="Download" immediate="true" ajax="false" actionListener="#{bean.setSelectedRow(entry)}">
                            <p:fileDownload value="#{bean.downloadCSV()}" />
                        </p:commandButton>
                    </p:column>
                </c:when>

                <c:when test="${column.header eq 'Display'}">
                    <p:column>
                        <p:commandButton id="displayButton" value="Display"
                            immediate="true"
                            action="#{tableBean.execute(entry)}"
                            update="displayTable"
                            oncomplete="PF('dialog').show();" />

                        <p:dialog id="dialog" header="Current data" widgetVar="dialog" height="80%" width="80%">

                            <p:dataTable styleClass="dataTable"
                                id="displayTable" var="tableDataVar"
                                value="#{tableBean.tableModel.data}"
                                tableStyle="width:auto;" resizableColumns="true">

                                <p:columns var="tableHeader" value="#{tableBean.tableModel.headers}">
                                    <f:facet name="header">
                                        <h:outputText value="#{tableHeader}" />
                                    </f:facet>
                                    <h:outputText value="#{tableDataVar[tableHeader]}" />

                                </p:columns>

                            </p:dataTable>

                        </p:dialog>
                    </p:column>
                </c:when>

                <c:when test="${column.header eq 'Test'}">
                    <p:column>
                        <p:commandButton value="Test" immediate="true" ajax="false" actionListener="#{bean.setSelectedRow(entry)}">
                            <p:fileDownload value="#{bean.testFilesDownload()}" />
                        </p:commandButton>
                    </p:column>
                </c:when>

                <c:otherwise>
                    <p:column>
                        <h:outputText value="#{bean.tableModel.get(entry, column)}" />
                    </p:column>
                </c:otherwise>
            </c:choose>
        </c:forEach>

    </p:dataTable>  

</h:panelGroup>

刷新页面后才会显示表格。

【问题讨论】:

  • 请显示对话框代码
  • 对话代码就在那里(第二个标签)。
  • 在浏览器控制台中检查 js 错误或在 Eclipse 控制台中检查 bean 错误
  • 没有错误
  • 尽可能粘贴完整代码

标签: ajax primefaces commandbutton


【解决方案1】:

问题是为父表中的每一列创建了一个包含该表的对话框。

因此,有多少列就有多少个对话框。

解决此问题的方法是以单独的形式添加对话框,并通过指定其路径在 commandButton 中引用它。

【讨论】:

  • 我必须等 21 小时才能完成
猜你喜欢
  • 2015-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多