我有一个数据表
<p:dataTable ...>
<p:ajax event="rowSelect" update=":previewDataForm" oncomplete="$('.previewDataModal').modal();"
immediate="true">
</p:ajax>
</p:dataTable>
我想在其中显示PDF (b标签是bootsfaces)的模式
<b:modal id="previewDataModal" title="Preview" styleClass="orderPreviewModalPseudoClass">
<h:form id="previewDataForm">
<pe:documentViewer height="550" value="#{contentStreamHelperBean.pdfFromFileSystem}" rendered="#{previewMB.renderPreview}"/>
</h:form>
</b:modal>
我有问题,显示它的情况下ajax调用从dataTable。当我在rowSelect上有属性update=":previewDataForm"
时,显示PDF,但它被渲染了两次,documentViewer中的按钮没有响应。当我从rowSelect中删除update=":previewDataForm"
时,documentViewer不呈现。
当我用commandButton调用这个模态时,一切都工作正常。有办法如何渲染previewDataForm只有一次,然后从ajax显示它?
谢谢
模式在页面首先显示时呈现。换句话说,它是在用户选择一行之前呈现的。我建议您在<h:form>
标记中添加rendered=
条件,以防止PDF文件的初始呈现。我的猜测是PDF文件无法呈现,因为没有选择行(通常是NullPointerException
),这会导致后续错误。