所有属性(如文本值,id,呈现等)均被省略。
我在单独的文件中有一些面板,可以导出到pdf btn。
<p:commandButton>
ajax="false"
onclick="blockUiOnDownload('blockUI')"
action="#{exportView.exportPlanPdf()}">
</p:commandButton>
ClassHelper
@ViewScoped
public class ClassHelper implements Serializable {
private List<Model> tableSelectedModel
//setter and getter, other vars and methods are not important
}
我有具有选择属性的dataTable
<p:dataTable
value="#{classHelper.model}" var="data"
selection="#{classHelper.tableSelectedModels}">
<p:column id="selectionColumn" selectionMode="multiple"/>
当然我有专栏等等,但这并不重要。 然后从exportPlanPdf()检查LIst tableSelectedModels是否为空,并依赖于此,我将导出所有表或仅导出选定的项。
if (!CollectionUtils.isEmpty(classHelper.getTableSelectedModels())) {
modelsToExport = classHelper.getTableSelectedModels(); {
else {
//get all models
}
问题是,然后我打开此表并按export btn,它会导出所有模型。然后,如果我选择1-2-3-etc。表中的所有行并尝试导出选定的行,所有模型将再导出一次。
但是,如果我刷新页面并首先选择一些模型并导出它们,它将根据需要导出(仅选中)。如果我取消选择它们,它将导出所有模型(按预期)。如果在此之后再次选择,它将导出所有行(但仅选中需要的行)。 不明白问题所在。