在childwindow中下载primefaces文件

在childwindow中下载primefaces文件,primefaces,Primefaces,我在primefaces数据表中有p:filedownload,如下所示 <p:column> <p:commandLink id="downloadLink" style="color:blue;text-decoration:underline; " disabled="#{ShipAttach.deleteSelect}" onc

我在
primefaces
数据表中有
p:filedownload
,如下所示

<p:column>
        <p:commandLink id="downloadLink"
                                style="color:blue;text-decoration:underline; "
                                disabled="#{ShipAttach.deleteSelect}" onclick="trailNewpage();"
                                value="#{ShipAttach.bpmfilename}" ajax="false">
                                <p:fileDownload contentDisposition="inline"
                                    value="#{filedownloadController.fileDownload(ShipAttach)}" />
                            </p:commandLink>
                        </p:column>


当我单击在同一窗口中打开文件的链接时,我还可以通过指定属性
target=“\u blank”
在新选项卡中打开文件,我希望这些文件在Childwindow中打开,请先帮我谢谢。

我在newTab中打开文件下载时遇到了与commandLink完全相同的问题。我被迫使用setTimeout使其工作(但我不明白为什么)

使用旧代码,链接会打开具有相同页面的新选项卡,但不会打开文件下载:

<h:commandLink
        onclick="doStuff()"
        target="_blank">
    <p:fileDownload contentDisposition="inline" value="#{myFile}"/>
</h:commandLink>
<h:commandLink
        onclick="setTimeout(doStuff, 0)"
        target="_blank">
    <p:fileDownload contentDisposition="inline" value="#{myFile}"/>
</h:commandLink>

使用新代码,链接将打开带有文件下载的新选项卡:

<h:commandLink
        onclick="doStuff()"
        target="_blank">
    <p:fileDownload contentDisposition="inline" value="#{myFile}"/>
</h:commandLink>
<h:commandLink
        onclick="setTimeout(doStuff, 0)"
        target="_blank">
    <p:fileDownload contentDisposition="inline" value="#{myFile}"/>
</h:commandLink>

我在newTab中打开文件下载时遇到了与commandLink完全相同的问题。我被迫使用setTimeout使其工作(但我不明白为什么)

使用旧代码,链接会打开具有相同页面的新选项卡,但不会打开文件下载:

<h:commandLink
        onclick="doStuff()"
        target="_blank">
    <p:fileDownload contentDisposition="inline" value="#{myFile}"/>
</h:commandLink>
<h:commandLink
        onclick="setTimeout(doStuff, 0)"
        target="_blank">
    <p:fileDownload contentDisposition="inline" value="#{myFile}"/>
</h:commandLink>

使用新代码,链接将打开带有文件下载的新选项卡:

<h:commandLink
        onclick="doStuff()"
        target="_blank">
    <p:fileDownload contentDisposition="inline" value="#{myFile}"/>
</h:commandLink>
<h:commandLink
        onclick="setTimeout(doStuff, 0)"
        target="_blank">
    <p:fileDownload contentDisposition="inline" value="#{myFile}"/>
</h:commandLink>


尝试首先通过普通链接打开新窗口。在那里加载一个页面,在那里你可以自动点击下载按钮。非常简单…实际上数据表中没有链接,例如:如果有10行,如果我想从第一行下载一个文件,我想在第一行单击,使文件内容显示在子窗口名称中。。。当target=“\u blank”打开新选项卡或子窗口是否受浏览器设置控制时,在包含指向要下载文件的参数的新窗口中创建一个执行“get请求”(因此不是commandLink)的普通链接…@Kukeltje?是的,我今晚学到了一些东西。根据规范,
h:commandLink
支持目标。Hmmmm
p:commandLink
不尝试首先通过普通链接打开新窗口。在那里加载一个页面,在那里你可以自动点击下载按钮。非常简单…实际上数据表中没有链接,例如:如果有10行,如果我想从第一行下载一个文件,我想在第一行单击,使文件内容显示在子窗口名称中。。。当target=“\u blank”打开新选项卡或子窗口是否受浏览器设置控制时,在包含指向要下载文件的参数的新窗口中创建一个执行“get请求”(因此不是commandLink)的普通链接…@Kukeltje?是的,我今晚学到了一些东西。根据规范,
h:commandLink
支持目标。Hmmmm
p:commandLink
不做你的“doStuff”做什么?如果你把它拿走怎么办?那么它能工作吗?哦,这个问题是关于PrimeFaces
p:commandLink
,而不是
h:commandLink
。。。所以你的回答在这里没有帮助。也许如果你用你的原始代码创建一个新的问题(在flavor中),我们可以看到你的问题是什么,以及为什么你的更改对你有用你的“doStuff”做了什么?如果你把它拿走怎么办?那么它能工作吗?哦,这个问题是关于PrimeFaces
p:commandLink
,而不是
h:commandLink
。。。所以你的回答在这里没有帮助。也许如果你用你的原始代码创建一个新的问题(在flavor中),我们可以看到你的问题是什么,以及为什么你的更改对你有效