我有一个gridview,其中有一列用于下载每一行的pdf文件。我触发了一个javascript函数,它使用“window.location.href”从另一个页面创建和下载PDF文件。现在在某个按钮的Clientclick上,我正在调用一个javascript函数,其中for循环读取gridview的每一行并触发click事件(我在grid中用于下载PDF的按钮)以一次下载多个PDF文件行。通过使用这种技术,我只得到包含最后一行细节的 PDF,也就是说,在为每一行触发点击事件后,我只得到一个 PDF。
问问题
1696 次
1 回答
1
我执行以下操作:
- 在 head 部分中包含exchange.js javascript 文件
- 在页面加载时初始化交换器对象:
theBuffer = new exchanger('dwnld');
创建一个 javascript 函数,当您想要启动文件下载时将调用该函数:
function downloadFile(){ // you can add parameters to the function as needed to pass in dynamic data sent to the back end download handler data = "http://your_backend_file_download_handler.php?param1=val1¶m2=val2&etc=whatever"; // send whatever data you need to the php program via query string parameters theBuffer.sendData(data); // initiate the file download }
注意:处理请求的 php 后端文件下载程序可以对您发送的参数做任何需要做的事情,以便组合/检索正确的数据/文件以供下载。经过多次修补后,这种组合一直对我 有用
在您的正文部分中包含这一点 html。我通常把它放在结束体标签之前:
<iframe name="dwnld" id="dwnld" style="width:0;height:0;border:0"> </iframe> Note: the id value assigned to the iframe is the same value given in step 2 when initializing.
结果是用户永远不会离开当前页面来下载任何数量的文件,因为实际下载是在单独的页面(也称为 iframe)中处理的。多年来,我在所有项目中都毫无问题地使用了它。
于 2013-07-24T12:17:40.983 回答